AI英会話で聞こえてくる「相手の声」は、どこかの誰かが録音した音声ではない。
その場で書かれた英文を、その場で音に変えている。
この部品の名前が音声合成(Text to Speech)だ。マイクロソフトの開発者向けドキュメントは「テキスト読み上げ機能は音声合成とも呼ばれます」と書いている。
英語学習者にとって、ここは無視できない場所にある。あなたが手本として毎日聞いている英語の発音・速さ・イントネーションは、全部この部品が決めているからだ。
そして公式ドキュメントを開くと、この部品には「選べるもの」と「選べないもの」がはっきり書いてある。
声の種類、英語の地域差、話す速さ、音の高さ、単語ごとの発音の上書き、数字の読み方まで、仕様として公開されている。
この記事では、その中身を1つずつ開けていく。サービスの順位づけはしない。仕組みの話だけをする。
【結論】英語の音声合成は「声・速さ・読み方」の3つを選ぶ作業だ
先に答えを置く。
英語の音声合成でユーザー側(あるいはアプリを作る側)が触れるつまみは、大きく3つしかない。
| つまみ | 何を決めるか | 公式ドキュメント上の名前 |
|---|---|---|
| ①声 | どの英語か(米・英・豪・印)、男女、声の世代 | voice / 音声 |
| ②速さと高さ | 話速・ピッチ・音量・間(ポーズ) | audioConfig / SSML の <prosody> |
| ③読み方 | 単語ごとの発音、数字・日付・単位の読み上げ | SSML の <phoneme> <say-as> |
グーグルの Cloud Text-to-Speech basics は、合成リクエストを送るときに「言葉を話す voice を指定しなければならない」と書いたうえで、ほかに speaking rate・pitch・volume・sample rate hertz を設定できると明記している。
マイクロソフトの テキスト読み上げの概要 も、SSML を使えば「ピッチの調整、一時停止の追加、発音の改善、話す速度の変更、音量の調整、単一のドキュメントへの複数の音声の割り当て」ができると書いている。
⇒ つまり、英語の音声合成は「英語がうまい機械」ではなく、指定されたとおりに読む機械だ。
手本として使えるかどうかは、性能ではなくこの3つのつまみがどこに設定されているかで決まる。
英語の音声合成で選べる声の数|グーグルの一覧は英語だけで260行ある
まず「声」から開ける。ここがいちばん量が多い。
Cloud Text-to-Speech basics は、声について「言語、性別、そして一部の言語ではアクセントによって異なる」と書いている。イギリス訛りの女性、オーストラリア訛りの男性、という選び方ができるということだ。
実際に Supported voices and languages の一覧を数えると、英語として並んでいるのは次の4ロケールだった。
| ロケール | 一覧上の表記 | 行数 | FEMALE | MALE |
|---|---|---|---|---|
en-US | English (US) | 99 | 48 | 51 |
en-GB | English (UK) | 63 | 32 | 31 |
en-AU | English (Australia) | 49 | 24 | 25 |
en-IN | English (India) | 49 | 24 | 25 |
合計260行。英語の手本として選べる声は、1つや2つではない。
声には en-GB-Chirp3-HD-Charon en-GB-Neural2-A en-GB-Studio-B のような固有の名前が付いていて、この名前を指定して呼び出す。basics ページのサンプルコードも、'languageCode':'en-gb' と 'name':'en-GB-Chirp3-HD-Charon' を並べて書いている。
イギリス英語(en-GB)の63行を種類別に分けると、内訳はこうなっていた。
- Chirp3-HD=30(
en-GB-Chirp3-HD-AchernarからZubenelgenubiまで、星の名前が並ぶ) - Neural2=7(A・B・C・D・F・N・O)
- Wavenet=7/Standard=7/News=7
- Chirp-HD=3(D・F・O)/Studio=2(B・C)
同じ「イギリス英語」でも、7種類の技術系統が並んでいる。
この系統の違いが、次の話につながる。
英語の音声合成の声の世代|Standard・WaveNet・Neural2・Chirp 3 HDは何が違うのか
声の名前に入っている単語は、飾りではなく「作り方」を指している。
Supported voices and languages ページは、冒頭に voice type の一覧表を置いていて、そこに「Intended for(想定用途)」「Controllability(制御できるか)」「Streaming(ストリーミング)」の列がある。
| Voice type | Intended for | Controllability | Streaming |
|---|---|---|---|
| Chirp 3: HD voices | Conversational Agents | 記載は「-」 | Yes |
| Studio | Media: Narration ほか | SSML | 記載は「-」 |
| Neural2 | General purpose | SSML | 記載は「-」 |
| WaveNet | General purpose | SSML | 記載は「-」 |
| Standard | Cost efficient | SSML | 記載は「-」 |
それぞれの説明も、同じページに書いてある。
- Standard=
parametric text-to-speechという方式の変種。ボコーダー(vocoders)と呼ばれる信号処理アルゴリズムに出力を通して音声データを作る、と説明されている。 - WaveNet=実際に人間が話した生の音声サンプルで訓練されたモデル。その結果、音節・音素・単語にかかる強調と抑揚がより人間らしくなると書かれている。
- Neural2=カスタム音声(Custom Voice)と同じ技術がベース。自分で音声を訓練しなくてもその技術が使える、という位置づけ。
- Studio=ニュースの読み上げや放送向けに設計された声。
- Chirp 3: HD=人間の抑揚のニュアンスを捉える技術で動く声。多くの言語で30種類の異なるスタイルがあり、テキストストリーミングによる低遅延のやりとりに対応する。
英語学習の手本という観点でいちばん効くのは、WaveNet の説明文だ。
「音節・音素・単語にかかる強調と抑揚」は、そのままリスニングとシャドーイングの材料になる部分だからだ。
そして、ここにはあとで効いてくる但し書きが付いている。Chirp 3: HD voices は SSML 入力に対応せず、speaking rate と pitch のパラメーターにも対応しないと明記されているのだ。
英語の音声合成のもう一方の系統|マイクロソフトは英語14ロケール、声に「スタイル」が付く
同じ音声合成でも、マイクロソフト側は数え方も並べ方も違う。
テキスト読み上げの概要は、標準音声を「100 以上の言語とロケールですぐに使用できる高品質のニューラル音声」と書いている。
言語と音声のサポートの表から英語のニューラル音声を数えると、並んでいるのは14ロケールだった。
| ロケール | 音声の数 | ロケール | 音声の数 |
|---|---|---|---|
en-US | 58 | en-IE(アイルランド) | 2 |
en-GB | 16 | en-CA(カナダ) | 2 |
en-AU | 15 | en-NZ(ニュージーランド) | 2 |
en-IN | 14 | en-SG(シンガポール) | 2 |
en-ZA(南アフリカ) | 2 | en-HK(香港) | 2 |
en-PH(フィリピン) | 2 | en-NG(ナイジェリア) | 2 |
en-KE(ケニア) | 2 | en-TZ(タンザニア) | 2 |
グーグル側の英語が4ロケールだったのに対し、こちらは14ロケールある。
そしてマイクロソフト側にしかない列が2つある。「スタイル」と「ロール」だ。
公式の説明は「話し方を調整して、明るさ、共感、落ち着きなどの感情を表現できます」「ロールを使用すると、同じ声が異なる年齢や性別として機能する可能性があります」となっている。
スタイルの数は声によって大きく違う。表の実データを引くと、こうなる。
| 音声名 | スタイル |
|---|---|
en-US-AriaNeural | angry/chat/cheerful/customerservice/empathetic/excited/friendly/hopeful/narration-professional/newscast-casual/newscast-formal/sad/shouting/terrified/unfriendly/whispering(16種類) |
en-US-JennyNeural | angry/assistant/chat/cheerful/customerservice/excited/friendly/hopeful/newscast/sad/shouting/terrified/unfriendly/whispering(14種類) |
en-US-GuyNeural | angry/cheerful/excited/friendly/hopeful/newscast/sad/shouting/terrified/unfriendly/whispering(11種類) |
en-GB-SoniaNeural | cheerful/sad(2種類) |
en-US-AndrewNeural | 表にスタイルの記載なし |
⇒ 「声を選ぶ」は、同時に「使える表現の幅を選ぶ」ことでもある。
ほかに、この概要ページから拾える英語学習向きの仕様が3つある。
- 音質=各標準音声モデルは 24 kHz と高忠実度 48 kHz で利用できると書かれている。
- 多言語音声=名前に
MultilingualNeuralDragonHDLatestNeuralDragonHDOmniLatestNeuralを含む音声は複数の言語に対応する。en-US-AndrewMultilingualNeuralのように、名前の先頭がその声の主ロケールを表す。 - 口形素(viseme)=音素を出すときの唇・顎・舌の位置のデータ。顔のアニメーションに使える。ただし現在サポートされているのは
en-US(米国英語)のニューラル音声だけと明記されている。
口の形まで出せるのが米国英語だけ、というのは「口元を見て真似する」タイプの学習機能を考えるときに効いてくる制約だ。
英語の音声合成で話す速さと高さを変える|SSMLのprosodyが触れるもの
2つ目のつまみ、速さとピッチに移る。
ここで登場するのが SSML(Speech Synthesis Markup Language=音声合成マークアップ言語)だ。
音声合成マークアップ言語 (SSML) の概要は、これを「ピッチ、発音、読み上げ速度、音量などのテキスト読み上げの出力属性を微調整するために使用できる XML ベースのマークアップ言語」と定義し、「プレーンテキスト入力以上の制御と柔軟性をもたらします」と書いている。
グーグル側の SSML リファレンスは、<prosody> が rate pitch volume の3属性に対応すると明記している。
ピッチの指定は3通りある。
| 指定方法 | 書き方 | 公式の説明 |
|---|---|---|
| Relative(相対) | low medium high など | medium が既定のピッチ |
| Semitones(半音) | +Nst / -Nst | N半音だけ上げ下げする。+/- と st の両方が必須 |
| Percentage(%) | +N% / N% | N%上げ下げする。% は必須、+/- は任意 |
公式に載っている例文はこうだ。<prosody rate="slow" pitch="-2st">Can you hear me now?</prosody>。「通常より2半音低く、ゆっくり話す」という指定になっている。
⇒ リスニング教材の「0.75倍速」の正体は、だいたいこの層にある。
ただし、同じページには使い方の注意もはっきり書かれている。
<prosody>タグは文全体を囲むときにだけ使う。文の中の単語だけを囲むと、望ましくない間(ポーズ)が入ることがある。<emphasis>も同じで、文全体に使う。level属性の値はstrongmoderatenonereducedの4つ。- 間を入れる
<break>はtime="250ms"のような時間指定と、x-weakweakmediumstrongx-strongという強さ指定の両方ができる。noneを指定すると、本来入るはずの区切りを抑えられる。 - プロソディを変える要素を含む文は
<s>...</s>で文単位に包むのが推奨されている。
「1単語だけゆっくり読ませる」が素直に通らない、というのは覚えておいていい。
英語の音声合成で発音を上書きする|IPAとX-SAMPA、そして強勢記号
3つ目のつまみが、英語学習にいちばん近い場所にある。
SSML の <phoneme> タグを使うと、単語の発音をその場で指定できる。グーグルの SSML リファレンスは、受け付ける発音記号として IPA と X-SAMPA の2つを挙げている。
強勢(ストレス)についても、3段階が定義されている。
- 第1強勢=IPA では
ˈ、X-SAMPA では"で表す。 - 第2強勢=IPA では
ˌ、X-SAMPA では%で表す。 - 強勢なし=どちらの記法でも記号を付けない。
- 強勢記号は、強勢の置かれる音節の先頭に置く。
公式が米国英語の例として挙げている単語は、そのまま発音練習の材料になる。
| 単語 | IPA | X-SAMPA | 何を示している例か |
|---|---|---|---|
| water | ˈwɑːtɚ | "wA:t@` | 第1強勢だけの語 |
| underwater | ˌʌndɚˈwɑːtɚ | %Vnd@"wA:t@ | 第2強勢と第1強勢が両方ある語 |
| butter | ˈbʌtɚ(ˈbʌɾɚ ではなく) | "bVt@` | 母音間の /t/ は、はじき音にせず転写する |
| dogs | ˈdɑːgz(ˈdɑːgs ではなく) | "dA:gz | /s/ の有声化を転写に反映させる |
| kitten | ˈkɪtən(ˈkɪtn ではなく) | "kIt@n | 音節主音的な子音を避け、あいまい母音を入れる |
| readability | ˌɹiː.də.ˈbɪ.lə.tiː | %r\iː.d@."bI.l@.tiː | . で音節の境目を指定できる |
ここは、英語学習者にとって読み飛ばせない記述を含んでいる。
公式は butter について「母音間の /t/ は、はじき音(tap)を使わずに転写せよ」と指示している。アメリカ英語の話者が実際に出している音(ラ行に近いあの音)を、あえて転写には使うなと言っているわけだ。
理由も書いてある。音素の並びによっては、そのとおりに合成すると不自然に聞こえる場合がある(anatomically difficult to pronounce な並びになる)からだ、と説明されている。
⇒ 合成音声の発音は「実際の話し言葉の写し」ではなく、読みやすく整えた転写の再生だと考えたほうが正確だ。
なお、発音の上書きは1語ずつタグで囲む以外の方法もある。グーグル側にはカスタム発音辞書があり、phrase: 'world'/phonetic_encoding: PHONETIC_ENCODING_IPA/pronunciation: 'wɜːld' のように、単語と発音の対応を先に登録しておける。
マイクロソフト側も同様に「発音を改善するために、音素とカスタム辞書で SSML を使用できます」「SSML を使用して、独自の辞書を定義したり、さまざまな話し方に切り替えたりできます」と書いている。
読み方そのものを差し替えたいだけなら <sub> も使える。alias 属性に書いた文字列が、囲まれたテキストの代わりに読まれる仕組みだ。
英語の音声合成は数字・日付・単位をどう読むか|米英で割れるsay-as
英語で意外と差が出るのが、数字と日付の読み上げだ。
SSML の <say-as> には interpret-as という必須属性があり、この値で「その文字列を何として読むか」を決める。
| interpret-as | 入力 | 公式に書かれている読まれ方 |
|---|---|---|
cardinal | 12345 | 米国英語なら “Twelve thousand three hundred forty five”、イギリス英語なら “Twelve thousand three hundred and forty five” |
ordinal | 1 | “First” |
characters | can | “C A N” |
fraction | 5+1/2 | “five and a half” |
unit | 10 foot | “10 feet”(数に応じて単数・複数を変換する) |
currency | $42.01 | “forty two dollars and one cent” |
date(detail=1) | 1960-09-10 | “The tenth of September, nineteen sixty” |
date(detail=2) | 10-9-1960 | “September tenth, nineteen sixty” |
同じ「12345」が、米と英で and が入るか入らないかで割れる。これを公式が例文として明記している。
日付も同じで、detail='1' なら “The {ordinal day} of {month}, {year}” の形、detail='2' なら “{month} {ordinal day}, {year}” の形になる、と公式が形式まで書いている。
電話番号にはさらに細かい分岐がある。google:style='zero-as-zero' を付けないと 0 を文字の O として読むとされており、この属性は現状 EN ロケールでのみ動く、と注記されている。
1文字ずつ読ませたいときは verbatim または spell-out、伏せ字にしたいときは expletive または bleep(ビープ音になる)が用意されている。
⇒ 数字の読み上げが教材によって違って聞こえるのは、気のせいではなく設定の差だ。
英語の音声合成に自然文で指示する型|OpenAIのinstructionsが受け取るもの
ここまでは全部「タグで指定する」方式だった。もう1つ、まったく別の方式がある。
OpenAI の Text to speech ガイドは、gpt-4o-mini-tts というモデルについて、プロンプト(自然文)で話し方を制御できると書いている。
制御できる項目として挙がっているのは、次の7つだ。
- Accent(アクセント/訛り)
- Emotional range(感情の幅)
- Intonation(イントネーション)
- Impressions(ものまね的な表現)
- Speed of speech(話す速さ)
- Tone(トーン)
- Whispering(ささやき)
ガイドに載っているコード例では、instructions: "Speak in a cheerful and positive tone." という英文がそのままパラメーターとして渡されている。
SSML のタグを覚える代わりに、英語の指示文を書く方式だ。
声は13種類が組み込みで用意されている。alloy ash ballad coral echo fable nova onyx sage shimmer verse marin cedar で、品質を優先するなら marin か cedar が推奨されている。
旧来の tts-1 と tts-1-hd では、使える声がこのうち9種類(alloy ash coral echo fable onyx nova sage shimmer)に限られる。tts-1 は遅延が小さいかわりに品質が tts-1-hd より低い、とも書かれている。
英語学習者にとって重要なのは、このガイドが「声は現状、英語向けに最適化されている(Voices are currently optimized for English)」と明言している点だ。
⇒ この方式の音声合成は、英語がいちばん得意な状態で出荷されている。
なお同じページには、利用ポリシー上「聞いている音声がAI生成であり人間の声ではないことを、エンドユーザーに明確に開示する必要がある」という条件も書かれている。アプリ側が「これはAIの声です」と表示しているのは、この種の要件に対応した結果だ。
英語の音声合成は「いい声ほど細かく制御できない」|手本に使うときの限界
ここまでの材料を並べると、1つの傾向が見えてくる。
新しくて自然な声ほど、SSML による細かい制御が効かないという傾向だ。
| 声の系統 | SSMLの扱い(公式の記述) |
|---|---|
| Chirp 3: HD(グーグル) | SSML 入力に非対応。speaking rate と pitch のパラメーターにも非対応。A-Law エンコーディングにも非対応 |
| Studio(グーグル) | SSML に対応。ただし <mark> <emphasis> <prosody pitch> <lang> は除く |
| Neural2/WaveNet/Standard(グーグル) | 一覧表の Controllability 列が「SSML」 |
| HD音声・パーソナル音声・埋め込み音声(マイクロソフト) | 「音声によっては、SSML タグが一部しかサポートされていないことがあります」と明記 |
⇒ 「いちばん人間らしい声で、0.8倍速で、この単語だけ発音を直して」は、系統によっては仕様として成立しない。
加えて、グーグルの basics ページには「Cloud TTS はすべての言語ですべての SSML 要素に対応しているわけではない」という注記もある。対応表は言語ごとに見る必要がある、ということだ。
手本として使うときに押さえておきたい限界は、ほかにも公式の記述から拾える。
- 口の形が出るのは米国英語だけ。 口形素は
en-USのニューラル音声でのみサポートされている、とマイクロソフトが書いている。 - 発音は「整えた転写」。 グーグルの SSML リファレンス自身が、はじき音や音節主音的子音を転写に使わないよう指示している。実際の話し言葉の音とは、意図的にずらしてある部分がある。
- 長い音声は別のAPIになる。 マイクロソフトは、10分を超えるテキスト読み上げファイルはバッチ合成 API で非同期に作る仕組みで、応答はリアルタイムでは返らないと書いている。
- 課金は文字数。 課金対象には「文字、句読点、スペース、タブ、マークアップ、すべての空白文字」が含まれ、
<speak>と<voice>タグを除く SSML のマークアップも数えられる。細かく制御するほど、そのぶん文字数が増える構造になっている。
つまり、英語の音声合成を手本にする判断は「音が良いか」ではなく「自分がいじりたいつまみが、その声に付いているか」で決まる。
英語の音声合成に関するよくある質問
Q. 音声合成の英語を発音の手本にしていいのか。 A. 「整えた転写を再生したもの」という前提で使うなら材料になる。グーグルの SSML リファレンスは、butter の母音間の /t/ をはじき音にせず転写するよう指示しており、実際の話し言葉とは意図的に差がある箇所があることを公式自身が示している。
Q. イギリス英語で練習したい。声は選べるのか。 A. 選べる。グーグルの一覧には en-GB が63行あり、en-GB-Neural2-A や en-GB-Studio-B のように名前を指定して呼び出す。マイクロソフト側にも en-GB のニューラル音声が16ある。
Q. 再生速度を落として聞きたいが、アプリに設定が無い。 A. 速度は SSML の <prosody rate> や audioConfig の speaking rate で扱う層にある。ただし Chirp 3: HD voices は speaking rate と pitch のパラメーターに対応しないと明記されているので、声の系統によっては設定そのものが存在しない。
Q. 感情や口調は変えられるのか。 A. 方式が2つある。マイクロソフトは音声ごとに「スタイル」を持たせる形で、en-US-AriaNeural には cheerful empathetic whispering など16種類がある。OpenAI は instructions に自然文で指示する形で、Accent・Intonation・Tone・Whispering などを指定できるとしている。
Q. 「Twelve thousand three hundred and forty five」と「and」無しを両方聞く。どちらが正しいのか。 A. どちらも仕様どおりだ。グーグルの SSML リファレンスは cardinal の例として、米国英語なら and 無し、イギリス英語なら and 入りで読まれると書いている。
Q. AIの声だと表示されるのはなぜか。 A. OpenAI の Text to speech ガイドは、利用ポリシーとして「聞いている音声がAI生成であり人間の声ではないことを、エンドユーザーに明確に開示する必要がある」と書いている。マイクロソフト側にも、合成音声の責任あるデプロイのためのガイドラインや開示設計のガイドラインが並んでいる。
まとめ|英語の音声合成は「どの声で・どの速さで・どう読ませるか」の設定で決まる
もう一度整理する。
- 声は大量にある。 グーグルの一覧は英語だけで260行(
en-US99・en-GB63・en-AU49・en-IN49)。マイクロソフトの英語は14ロケールで、en-USだけで58の音声が並ぶ。 - 声の名前は作り方を指している。 Standard はボコーダーを通す方式、WaveNet は人間の生音声で訓練したモデルで音節・音素・単語の強調が人間らしい、Neural2 はカスタム音声と同じ技術、Chirp 3: HD は会話エージェント向けで30種類のスタイルを持つ。
- 速さと高さは SSML の
<prosody>層。 ピッチは相対値・半音(-2st)・%の3通りで指定でき、タグは文全体に掛けるのが公式の推奨だ。 - 発音は上書きできる。
<phoneme>が IPA と X-SAMPA を受け取り、第1強勢ˈ・第2強勢ˌ・音節境界.まで指定できる。数字や日付は<say-as>の担当で、米英で読み方が割れることも公式が例示している。 - 自然さと制御はトレードオフになっている。 Chirp 3: HD は SSML も speaking rate も pitch も非対応、Studio は
<prosody pitch>などが除外、マイクロソフトも「音声によっては SSML タグが一部しかサポートされていないことがあります」と書いている。
⇒ 「AIの英語は本物っぽいか」ではなく、「自分が触りたいつまみが、その声に付いているか」で見る。
そこさえ合っていれば、英語の音声合成は、速さも高さも発音も自分の都合に合わせられる、かなり素直な部品だ。
※本記事の一次ソースはすべて2026-09-11に各公式ドキュメントで確認した。仕様は更新されるため、最新は各公式ドキュメントで確認してほしい。
Comments