| name | voicevox-kana |
| description | 日本語の原文を、VOICEVOX に読み上げさせるためのカタカナ原稿へ変換するスキル。VOICEVOX の accent_phrases に is_kana=true で渡せる AquesTalk 風のカタカナ表記(アクセント・区切り・小休止・語尾上げ)を規定する。 |
VOICEVOX カタカナ原稿
このスキルは、日本語の原文を VOICEVOX で読み上げさせるための「カタカナ原稿」に変換する手順を規定します。
VOICEVOX には、任意の文字列を渡せる text と、アクセント付きのカタカナ原稿を渡せる accent_phrases があります。
accent_phrases を渡した場合、生成される音声上では、text は無視されます。
この場合、text に渡す文字列は あ でもかまいません。
カタカナ原稿の作成手順は、大きく分けて、読み化と後処理に分かれます。
日本語では、書かれている原文文字列と実際の読みの間には、極めて複雑な関係があります。
そして、読みは、最終的には厳格に規定された形式のカタカナ原稿文字列として記述しなければなりません。
読んだままの原則
原文を読みにする手順では、混乱を防ぐために、読みは、必ず原文を「読んだまま」でなければなりません。
構文レベルか語レベルかに関わらず、意訳、省略、平易化、正確化、正規化、厳密化、丁寧化、文語化、口語化、などの改変を、絶対にしてはいけません。
原文と読みの間には、故意か不注意か、善意か悪意かによらず、いかなる乖離も、決して生じさせてはなりません。
- 「プログラムはバグったら駄目じゃん?」 →
プログラムハタダシクドウサシナケレバナリマセン ではなく プログラムハバグッタラダメジャン?
- 「食べちゃったりしてはいけません。」 →
タベテハイケマセン ではなく タベチャッタリシテハイケマセン
- 「画面を閉じてねっていう指示」 →
ウィンドウヲトジテネッテイウシジ ではなく ガメンヲトジテネッテイウシジ
- 「hello.sh」 →
ハロードットシェル ではなく ハローテンエスエイチ
- 「ctx」 →
コンテキスト ではなく シーティーエックス
マークアップの無視
マークアップ言語の制御記述(タグ・記法記号など)は、整形表示された最終テキストを読む人には見えないため、無視します。
この<b>スクリプト</b>は → コノスクリプトハ(HTMLタグ)
**とても**大事 → トテモダイジ(Markdownの強調記号)
[説明](http://example.com) → セツメイ(Markdownのリンク記法。表示される文字だけを読む)
ラテン文字による略語の読み方
ラテン文字による略語は、ゆるい原則として、各文字の名前を個別に読みます。
- 「API」 →
エーピーアイ
- 「HTML」 →
エイチティーエムエル
一部の略語には、個別の文字の名前の連結でない特別な読み方があります。
- 「JSON」 →
ジェーソン
- 「UFO」 →
ユーフォー
記号の読み方
記号は、その記号の英名のカタカナ表記ではなく、記号ごとに個別に日本語文化における読みがあります。
以下は網羅的でない一例です。
- 「%」 →
パーセンテージ ではなく パーセント
- 「$」 →
ダラー ではなく ドル
- 「\」 →
バックスラッシュ ではなく エン
区切り記号の読み方
拡張子の . は テン と読みます。
ドメインの . は ドット と読みます。
ディレクトリの区切りはその記号をそのまま読みますが、区切り記号の有無の違いが重要な局面を除き、原則として無視します。
- 「C:\logs\test.log」 →
シーログズテストテンログ
- 「/dev/null」 →
デブヌル
区切り記号を含む複合語の区切り記号は、ゆるい原則として、無視します。
- 「C++/CLI」 →
シープラスプラスシーエルアイ
人物名の区切りは、原則として無視します。
- 「アイザック・ニュートン」 →
アイザックニュートン
括弧類の読み方
括弧類は、その目的によって読み方や小休止を挟むか否かが変わります。
可読性のための鍵括弧は、無視します。
- 「ここは「極力正確」という趣旨で」 →
ココハキョクリョクセイカクトイウシュシデ
台詞のための鍵括弧は、小休止にします。
- 「今「違うんじゃない?」と思った?」 →
イマ、チガウンジャナイ?、トオモッタ?
直前もしくは直後の文や語句を説明するための丸括弧は、小休止にします。
- 「JS(JavaScript)は」 →
ジェーエス、ジャバスクリプト、ハ
数式に含まれる括弧類は、そのまま読みます。
丸括弧は単に カッコ 、閉じ括弧は括弧の読みの後に トジル を付けます。
- 「1 × (2 + 3)」 →
イチカケルカッコニタスサンカッコトジル
視覚的な目的のための半角スペース
日本語と横文字や数値を分離する半角スペースは、視覚的な目的で配置されており、これの存在は、直ちに小休止を要請しません。
- 「この pem ファイル」 →
コノ、ペム、ファイル ではなく コノペムファイル
- 「約 10 人」 →
ヤク、ジュウ、ニン ではなく ヤクジュウニン
ただし、その他に正当な理由があればこの位置で小休止を行ってもかまいません。
長音表現
発音指示に長音記号 ー を含めることはできず、実際に読んだ通りの発音を書かなければなりません。
仮名文字による表記は、直前に書かれているモーラの母音を反復します。
- 「おー!」 →
オオ
- 「エージェント」 →
エエジェント
- 「コード」 →
コオド
- 「チャージ」 →
チャアジ
「チ」(い段)と「チャ」(あ段)といった拗音の母音の判別に注意してください。
「ん」に続く長音は「ん」の反復として処理します。
「っ」に続く長音は無視します。
横文字は、一旦カタカナ表記に変換したうえで、仮名文字表記として解決します。
場合によってはカタカナ表記に複数パターンの揺れがある場合もあり、どちらでも正解です。
- 「Gradle」 → 「グレードル」 →
グレエドル
- 「Gradle」 → 「グレイドル」 →
グレイドル
- 「API」 → 「エーピーアイ」 →
エエピイアイ
漢語は、それを読み仮名にした後、エイ、オウ型の重母音パターンを長音に直し、そして仮名文字表記として解決します。
- 「警報機」 → 「ケイホウキ」 → 「ケーホーキ」 →
ケエホオキ
発音と表記が乖離した助詞
助詞の「は」「を」「へ」は、それぞれ ワ オ エ と発音します。
一部の語源的に助詞が変化してできた挨拶もこれに従います。
使用可能なカタカナ
発音可能な音声として、以下に示すカタカナのみが使用できます。
アイウエオカキクケコサシスセソタチツテトナニヌネノ
ハヒフヘホマミムメモヤユヨラリルレロワヲ
ン
ガギグゲゴザジズゼゾダヂヅデドバビブベボ
パピプペポ
ァィゥェォャュョ
ッ
一方で長音 ー は使用できません。
ヴァヴィヴヴェヴォ はそれぞれ バビブベボ で代用します。
ひらがな、漢字、ラテン文字、許可されていない記号類なども含めることはできません。
アクセント
半角アポストロフィ ' の位置で音が下降(行程アクセント)します。
下降を行わない平板型アクセントの場合、アクセント単位の末尾に書きます。
アクセントの指示は、アクセント単位ごとに必ず丁度1個だけ必要です。
日本語のアクセントは同音異義語を区別するために単語ごとに定義された重要な概念であり、雰囲気で付けてはいけません。
アクセント区切り
半角スラッシュ / はアクセント単位を分割します。
複合語はアクセントを分割しません。
- 「安息香酸ナトリウム」 →
アンソクコウサンナトリ'ウム
小休止
全角読点 、 は / と同様にアクセントを区切りつつ、さらにその位置に小休止を発生させます。
小休止は読み上げのリズムに影響する重要な要素であり、多すぎても少なすぎても可聴性に影響します。
原文で読点 、 や中点 ・ が使われる場所のほか、いくつかの文法上の要請による意図的な場面でのみ小休止を発生させてください。
原文に含まれる半角スペース は文法上意味のある記号ではなく、小休止に対応付けられないことに注意しなければなりません。
語尾上げ
語尾上げのイントネーションを指示するには、全角クエスチョンマーク ? を使います。
日本語では基本的にすべての質問、疑問、自問に語尾上げを行います。
表面上疑問形であっても語尾上げを伴わない納得や反語のパターンもあります。
? は 、 と同様に、アクセント区切りと小休止も兼ね、さらに純粋な区切り記号と異なり、文末に書くこともできます。
標準記法の範囲
' / 、 ? は、いずれも VOICEVOX の accent_phrases エンドポイントに is_kana=true を指定して渡せる標準記法です。
カタカナ原稿は、これらの記号と使用可能なカタカナのみで構成し、VOICEVOX にそのまま渡せる形にします。