音声合成 仕組み:文字から音になるまで
要約
音声合成 仕組みは、大きく4つの段階で動いています。まずテキストを正規化して数字や略語を読める形にし、発音の段階で単語を音素に変換します。次に韻律モデルが音の高さ、長さ、強さを予測し、最後にボコーダーが音声波形を生成します。失敗の多くは名前や数字など前段の処理で起きるため、入力を整えることが聞き取りやすさにつながります。
音声合成 仕組みは、3つのステップで説明できます。まずソフトウェアがテキストを整えて、一語ずつの読み方を決めます。次にニューラルモデルが文全体のリズム、音の高さ、長さをスペクトログラムとして予測します。最後にボコーダーがそのスペクトログラムを実際の音声波形に変えます。1,000語の記事なら全体の処理は数秒で終わるため、リンクを貼って再生を押すだけで聞けるわけです。
ページから耳に届くまで、実際に何が起きているのか
4人の走者によるリレーとして考えると分かりやすいです。テキストが入り、正規化された文字列が発音の段階に渡されます。発音の情報は韻律の段階へ、韻律の情報は波形生成器へ渡され、最後に音声が出てきます。
現代の音声エンジンは、スマホの読み上げ機能から読書アプリのナレーションまで、どれもこの流れのどれかに沿っています。新しいシステムでは複数の段階が1つのネットワークにまとめられていますが、それぞれの役割が消えたわけではありません。単一のモデルの中で行われているだけです。
入力 → "Dr. Voss paid $4.50 on 5/21."
段階1 → "Doctor Voss paid four dollars fifty cents on May twenty-first."
段階2 → /ˈdɑːktɚ vɔs .../
段階3 → 音素ごとの音の高さ、長さ、強さ
段階4 → 波形、毎秒22,050から48,000サンプル仕組みはこれで全部です。この先では、各段階が何をしているのか、どこで失敗しやすいのか、その失敗が耳にどう聞こえるのかを見ていきます。
なぜ最初の段階、テキスト正規化がこれほど重要なのか
書かれた文章は、そのまま読める文章ではないからです。ページには数字、日付、略語、通貨記号、URL、脚注番号、絵文字が多く含まれています。どれも、読み方が自明ではありません。
テキスト正規化は、これらを読める形に展開します。"$4.50" は「4ドル50セント」になります。"St." は、前後の文脈によって「ストリート」にも「セント」にもなります。古いエンジンは手書きのルールでこれを処理していました。新しいエンジンは、ルールと、あいまいなケースを扱う小さな学習モデルを組み合わせています。
記事の読み上げでは、ここで失敗すると最初の1分で気づきます。「iPhone 15 Pro Max」を「フィフティーン」と読むか「ワン・ファイブ」と読むかで、文の意味が変わります。文中で「[12]」のような脚注番号がそのまま読まれると、思考の流れが途切れます。良いツールは、脚注の番号を取り除き、ナビゲーションの文字を飛ばし、表をどう扱うかを、音声が話し始める前に決めています。
長い記事を聞くと、冒頭の数分で違いが分かります。ナレーターが数字でつまずいたなら、失敗したのは声ではなく前処理です。

単語の読み方は、システムはどう決めているのか
英語のつづりは、音の指標としてあまり当てになりません。"though"、"through"、"tough"、"thought" は、文字の大半を共有していますが、音はほとんど共有していません。そこでエンジンには、発音の段階が必要になります。文字を音素に変換する処理で、一般に G2P(grapheme-to-phoneme)と呼ばれています。
音素とは、単語を区別できる最小の音の単位です。英語では約40種類あります。G2P は2通りの方法で文字を音素に変換します。よく使う単語と既知の例外は発音辞書で処理し、辞書にない語、たとえば一度も見たことのない姓などは学習モデルが推測します。
難しいのは同音異義語です。"I read it yesterday" の "read" と "I read every morning" の "read" は、綴りは同じでも音が違います。日本語でも同じ問題があります。「市場」は「いちば」とも「しじょう」とも読めますし、「今日」は「きょう」とも「こんにち」とも読めます。だからこそ現代のエンジンは、単純な辞書引きではなく、文脈を見るネットワークを使っています。
まだ失敗しやすいのは、次のような場面です。
英語の記事の中にある、英語以外の固有名詞。
SQL が「sequel」なのか「S-Q-L」なのか分からない、技術用語や頭字語。
綴りのルールをわざと外したブランド名。
多くのエンジンでは、発音を独自に登録できます。ただ、それを使う読者は多くありません。同じ単語で何度もつまずくなら、その設定を探す価値があります。
抑揚とリズムはどこから生まれるのか
フラットな声と、40分聞き続けられる声を分けるのが、この段階です。プロソディ(韻律)と呼ばれ、文全体の強勢、速さ、間、音の高低の動きを扱います。
人間は、これを意識せずに行っています。疑問文の終わりで音を上げ、読点の前で少しゆっくりにし、要点の語に力を入れます。TTS モデルは、これらすべてをテキストだけから予測しなければなりません。音素ごとに、長さ、音の高さ、強さの3つの数値を推定します。その際には、前後の語、句読点、音素が音節・語・句の中でどの位置にあるかを使います。
句読点は、モデルが受け取る最も強い手がかりです。読点は短い間、句点は長い間、段落の区切りはさらに長い間につながります。段落分けがない文章や、かぎ括弧が何重にも入り組んだ文章は、優れた声で読んでも、せわしなく聞こえます。
ここで覚えておきたい数字があります。標準的なナレーターは1分あたり約150語を話します。3,000語のエッセイは、つまり約20分の音声になります。多くのアプリでは再生速度を1.5倍や2倍にできるので、同じエッセイは13分、あるいは10分になります。1.5倍で快適に聞けるかどうかは、韻律の品質で決まります。
ボコーダーとは何か、なぜ必要なのか
韻律の計画が終わった時点で、モデルは計画を持っていても、まだ音は持っていません。多くのニューラルシステムでは、その計画はメルスペクトログラムです。周波数ごとのエネルギーが時間とともにどう分布しているかを示す図で、通常は毎秒約80フレームで表されます。
スペクトログラムは音声そのものではありません。波形を波形たらしめている細かな位相の情報が失われています。そこで2つ目のモデル、ボコーダーが、それに合う波形を再構成します。これは、1秒間に数万のサンプルを生成することを意味します。どのサンプルも、その瞬間の空気の圧力を表す数値です。
WaveNet は、2016年に DeepMind が発表したモデルで、ニューラルボコーディングを広く知らしめました。生の音声を1サンプルずつ生成し、それまでのどの手法よりも自然に聞こえました。ただし、非常に遅いものでした。その後の HiFi-GAN などのボコーダーは、音声を並列に生成するため、リアルタイムの何倍もの速さで動きます。これにより、スマホでも即座に再生できるようになりました。
中間の段階を省くシステムもあります。2021年のこの論文 で紹介された VITS は、音素から波形までを1つのネットワークで学習します。受け渡しが減るので、誤りが積み重なる場所も減ります。
1980年代の話す玩具から、ここまでどう来たのか
音声合成は、ニューラルネットワークから始まったわけではありません。3つの時代を経ています。その最初の2つの名残は、古いスクリーンリーダーに今も残っています。

フォルマントとルールベースの合成。 エンジニアは声道をフィルターでモデル化し、パラメーターを手で調整しました。音は聞き取れましたが、明らかに機械的でした。初期の話す玩具や、最初の世代のスクリーンリーダーの声がこれにあたります。今も多くの視覚障がいのある利用者が、高速設定でこの声を使い続けています。速く、予測しやすく、リリースのたびに声が変わらないからです。
連結型、つまり単位選択による合成。 声をモデル化する代わりに、人間の話者を何十時間も録音し、音声を小さな単位に切り分けて、実行時に適切な単位をつなぎ合わせます。ずっと人間らしく聞こえましたが、つなぎ目が聞こえました。珍しい語では継ぎ目が目立ち、声のスタイルを変えるには新たな録音が必要でした。
ニューラル合成。 今のアプローチです。モデルは大量の録音から、文字と音の対応全体を学習し、音声を切り貼りせず生成します。スタイル、速度、感情を制御できるようになりました。短いサンプルから声をクローンすることも可能になり、継ぎ目はほぼ消えました。
ひとつ正直に言っておくと、ニューラルの声は完璧ではありません。単語を取り違えたり、音節を落としたり、強調が必要な文を平板にしたりすることがあります。失敗は昔よりまれで、奇妙な形で起きますが、存在はします。長い文書では、たまに失敗する見事な声よりも、多少平板でも崩れない声のほうが実用的です。
どの TTS ツールが、これらの段階を実際に見せてくれるか
製品ごとに、音声パイプラインの賭け方が違います。知っておく価値のあるものと、それぞれの率直な評価をまとめます。
Speechify は、アプリの完成度と豊富な音声ライブラリが強みです。モバイルでの使い勝手がよく、多くのソースからの取り込みに対応しています。連携の幅を重視するなら、まずここから見てみるとよいでしょう。
NaturalReader は、この分野で古くから知られた名前です。文書や PDF の読み上げに安定しています。入力がウェブ記事ではなくファイル中心なら、現実的な選択肢になります。
ElevenLabs は、反対側の端にあります。まず音声生成プラットフォームで、抑揚とボイスクローンに強みがあります。読み上げの待ち行列を処理するためではなく、公開する音声を制作するために作られています。
Voice Dream Reader は、多くの低視力の読者がすでに知っているツールです。基礎になる音声エンジンを切り替えられ、発音を調整でき、速度を細かく設定できます。ここまで説明してきたパイプラインを、実際に調整できるツールです。
「最も良い声を持つツール」という考え方は、捨ててください。違いは前処理にあります。記事をどう整えるか、表をどう扱うか、ネストされた引用を含む5,000語の文章をどう処理するか。読み上げのワークフローが成功するか、静かに失敗するかは、そこで決まります。

この知識は、音声の聞き方をどう変えるのか
パイプラインを知っていると、実践的に取れる手が3つあります。
入力を整える。 記事を音声にする前に、広告、Cookie の通知、脚注のノイズを取り除きます。リーダー表示モードも役立ちます。前処理にできることには限りがあります。
速度と抑揚を合わせる。 1.0倍では良く聞こえるのに1.5倍で崩れる声は、長さを予測するモデルが弱点です。速度を諦める前に、別の声を試してください。
よく間違える語を直す。 名前や頭字語が何度も間違って読まれるなら、一度だけ発音を登録してください。数か月にわたって聞き続けるより、ずっと楽です。
また、ベストの記事ではなく、最悪の記事で試してください。きれいな800語のブログ記事では何も証明できません。数字、引用、表を含む密度の高い4,000語の文章こそ、本当の試験になります。
次の通勤の前に、長い読み物と短い読み物を1つずつキューに入れてみてください。それぞれ最初の2分を通常速度で聞き、次に1.5倍速で聞いてください。ここまでで説明した段階が聞こえてくるはずです。そして、どの段階でバトンを落としたのかが分かるようになります。