音声合成 仕組み:文字から音になるまで

要約

音声合成 仕組みは、大きく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" は、綴りは同じでも音が違います。日本語でも同じ問題があります。「市場」は「いちば」とも「しじょう」とも読めますし、「今日」は「きょう」とも「こんにち」とも読めます。だからこそ現代のエンジンは、単純な辞書引きではなく、文脈を見るネットワークを使っています。

まだ失敗しやすいのは、次のような場面です。

多くのエンジンでは、発音を独自に登録できます。ただ、それを使う読者は多くありません。同じ単語で何度もつまずくなら、その設定を探す価値があります。

抑揚とリズムはどこから生まれるのか

フラットな声と、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つの名残は、古いスクリーンリーダーに今も残っています。

1980年代の話す玩具と音声合成回路基板が置かれた机

フォルマントとルールベースの合成。 エンジニアは声道をフィルターでモデル化し、パラメーターを手で調整しました。音は聞き取れましたが、明らかに機械的でした。初期の話す玩具や、最初の世代のスクリーンリーダーの声がこれにあたります。今も多くの視覚障がいのある利用者が、高速設定でこの声を使い続けています。速く、予測しやすく、リリースのたびに声が変わらないからです。

連結型、つまり単位選択による合成。 声をモデル化する代わりに、人間の話者を何十時間も録音し、音声を小さな単位に切り分けて、実行時に適切な単位をつなぎ合わせます。ずっと人間らしく聞こえましたが、つなぎ目が聞こえました。珍しい語では継ぎ目が目立ち、声のスタイルを変えるには新たな録音が必要でした。

ニューラル合成。 今のアプローチです。モデルは大量の録音から、文字と音の対応全体を学習し、音声を切り貼りせず生成します。スタイル、速度、感情を制御できるようになりました。短いサンプルから声をクローンすることも可能になり、継ぎ目はほぼ消えました。

ひとつ正直に言っておくと、ニューラルの声は完璧ではありません。単語を取り違えたり、音節を落としたり、強調が必要な文を平板にしたりすることがあります。失敗は昔よりまれで、奇妙な形で起きますが、存在はします。長い文書では、たまに失敗する見事な声よりも、多少平板でも崩れない声のほうが実用的です。

どの TTS ツールが、これらの段階を実際に見せてくれるか

製品ごとに、音声パイプラインの賭け方が違います。知っておく価値のあるものと、それぞれの率直な評価をまとめます。

Speechify は、アプリの完成度と豊富な音声ライブラリが強みです。モバイルでの使い勝手がよく、多くのソースからの取り込みに対応しています。連携の幅を重視するなら、まずここから見てみるとよいでしょう。

NaturalReader は、この分野で古くから知られた名前です。文書や PDF の読み上げに安定しています。入力がウェブ記事ではなくファイル中心なら、現実的な選択肢になります。

ElevenLabs は、反対側の端にあります。まず音声生成プラットフォームで、抑揚とボイスクローンに強みがあります。読み上げの待ち行列を処理するためではなく、公開する音声を制作するために作られています。

Voice Dream Reader は、多くの低視力の読者がすでに知っているツールです。基礎になる音声エンジンを切り替えられ、発音を調整でき、速度を細かく設定できます。ここまで説明してきたパイプラインを、実際に調整できるツールです。

「最も良い声を持つツール」という考え方は、捨ててください。違いは前処理にあります。記事をどう整えるか、表をどう扱うか、ネストされた引用を含む5,000語の文章をどう処理するか。読み上げのワークフローが成功するか、静かに失敗するかは、そこで決まります。

夕暮れの駅のホームで、片耳にイヤホンをつけて電車を待つ通勤者

この知識は、音声の聞き方をどう変えるのか

パイプラインを知っていると、実践的に取れる手が3つあります。

  1. 入力を整える。 記事を音声にする前に、広告、Cookie の通知、脚注のノイズを取り除きます。リーダー表示モードも役立ちます。前処理にできることには限りがあります。

  2. 速度と抑揚を合わせる。 1.0倍では良く聞こえるのに1.5倍で崩れる声は、長さを予測するモデルが弱点です。速度を諦める前に、別の声を試してください。

  3. よく間違える語を直す。 名前や頭字語が何度も間違って読まれるなら、一度だけ発音を登録してください。数か月にわたって聞き続けるより、ずっと楽です。

また、ベストの記事ではなく、最悪の記事で試してください。きれいな800語のブログ記事では何も証明できません。数字、引用、表を含む密度の高い4,000語の文章こそ、本当の試験になります。

次の通勤の前に、長い読み物と短い読み物を1つずつキューに入れてみてください。それぞれ最初の2分を通常速度で聞き、次に1.5倍速で聞いてください。ここまでで説明した段階が聞こえてくるはずです。そして、どの段階でバトンを落としたのかが分かるようになります。

よくある質問

簡単に言うと、音声合成はどう動くのですか?
ソフトウェアがテキストを整え、各単語の読み方を決め、リズムと音の高さを予測してから、その計画から音声波形を生成します。現代のシステムでは、最後の段階をニューラルボコーダーが担当しています。
古い音声合成とニューラル音声合成の違いは何ですか?
古いシステムは手で調整したルールや、録音された断片をつなぎ合わせる方式を使っていたため、つなぎ目が聞こえました。ニューラルシステムは大量の音声から学習し、音声を直接生成するので、話す速さや抑揚がずっと機械的に聞こえにくくなっています。
音声合成が一部の単語を読み間違えるのはなぜですか?
英語の綴りは一貫していませんし、名前、頭字語、read や bass のような同音異義語は文脈によって読みが変わります。発音の段階が推測を誤ると、ナレーターも誤って読みます。発音の登録機能を使えば、たいてい直せます。
音声合成の声は、どれくらいの速さで読みますか?
標準的なナレーターは、普通の速度で1分あたり約150語を話します。1.5倍では約225語になるため、3,000語の記事は約20分から約13分に短くなります。
ボコーダーとは音声合成でどんな役割を果たしますか?
ボコーダーは、周波数の分布を時間とともに示したスペクトログラムを、実際の音声波形に変えるモデルです。HiFi-GAN や WaveNet がよく知られた例です。
音声合成はPDFとウェブ記事を同じように読めますか?
必ずしもそうではありません。ウェブ記事にはナビゲーションや広告が含まれ、PDF には段組み、見出し、脚注が含まれます。ツールによって、声が読み始める前にそのノイズをどれだけ取り除けるかが違い、その前処理は声そのものと同じくらい重要なことが多いです。
音声合成は弱視の人にも役立ちますか?
はい。画面を見なくても文字の情報にアクセスできます。予測しやすく、すぐ追える平板な声を、速い速度で使う読者も多くいます。