KEN’S CAT LOG
▣

音声合成の学習データ、10時間・5時間・3時間で比べてみた。3言語を喋るTTSでほぼ差なし

クロアチア語の音声合成モデルの続き。今回は1つの小さいモデルに、クロアチア語・日本語・英語の3言語を喋らせた。そのうえで、「学習データは各言語10時間・5時間・3時間で、どれくらい違うのか」を比べてみた。

先に結論。

  • 各言語10時間でも5時間でも3時間でも、最終的にはほとんど変わらなかった。 一番良い時点の文字誤り率は、3つとも0.7%(32文中28文が完全一致)
  • 学習の進み方もほぼ同じ。どれも日本語と英語は3,000〜5,000ステップで、クロアチア語も10,000ステップでほぼ台本通りに読めた
  • 3時間版だけ、途中で「Bok!(やあ)」を「Blok」と読み違える癖がしばらく残った。最良の状態に落ち着くまで少し長くかかる
  • 専門用語だらけの文でも差は出なかった。10時間の方が語彙に強いと思って試したが、3つともほぼ同じだった
  • 専門用語の読み間違いは、3つのモデルで同じ単語に同じように出た。英語では、原因はモデルではなく、文字を発音記号に変える部分(辞書)だった

やったこと

モデル:前回と同じ Matcha-TTS(約1,830万パラメータ)と、波形に戻す Vocos(約1,350万パラメータ)。話者は20代の男性1人。

3言語にする工夫:モデルの入力を3言語共通の発音記号(IPA)にした。「ʦ」「ʨ」のように言語をまたいで同じ音は、同じ記号を共有する。どの言語を喋るかは、本来は話者を切り替えるための番号を「言語の番号」として使って指定している。

  • クロアチア語:ほぼ書いた通りに読む言語なので、文字を1対1で発音記号に置き換えるだけ
  • 日本語:OpenJTalk で読みとアクセントを取り出し、音の高さが上がる所・下がる所の印を付けた
  • 英語:g2p_en(CMU 発音辞書と、辞書にない単語の発音を推測する小さなモデル)で発音記号にした

学習データ:同じ男性の声で、3言語の会話のセリフを読んだ音声。音声認識で台本と比べて読み間違いを除いた後の量は、クロアチア語9.4時間、日本語9.7時間、英語8.3時間(合計約27時間)。これを「10時間版」と呼ぶ。

ここから各言語ちょうど5時間ずつ(合計15時間)をランダムに抜き出したのが「5時間版」、3時間ずつ(合計9時間、約5,800本)が「3時間版」。それ以外の設定(モデルの大きさ、バッチサイズ、60,000ステップ)はすべて同じにした。同じステップ数なので、データが少ないほど同じ音声を何度も見ることになる(3時間版は10時間版の約3倍)。

学習は RTX 4090 1枚で、1回あたり6〜8時間半かかった。

学習途中の声を聞き比べる

学習データに入っていない次の文を、学習途中のモデルで合成した。

  • 英語:Tomorrow we're going to the seaside, and the day after we'll visit my grandma in Split.
  • 日本語:明日は海に行って、あさってはおばあちゃんの家に遊びに行く予定です。
  • クロアチア語:Sutra idemo na more, a prekosutra ćemo posjetiti baku u Splitu.

左から10時間版、5時間版、3時間版。

ステップ 10時間版 5時間版 3時間版
1,000 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
2,000 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
3,000 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
4,000 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
5,000 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
10,000 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
20,000 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
30,000 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
40,000 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
50,000 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語

聞いた印象では、1,000ステップはどれもまだ不明瞭。でも英語はもう何を言っているかだいたい分かる。日本語は版によって差があって、5時間版は1,000ステップの時点でこの文を一字一句正しく書き起こされた。一方、10時間版は「お世話になってみてください」、3時間版は「明日までのメディックで…」と、まったく別の文になっていた。

3,000〜5,000ステップで、日本語と英語はどれも台本通りに読めるようになる。クロアチア語は少し遅れて、最初の「Sutra(明日)」が「Sve」「Straj」「Satra」などと聞き取られるのが5,000〜10,000ステップ前後まで残った。20,000ステップ以降は、聞いても3つの違いはほとんど分からなかった。

数字で見る

評価用の文(クロアチア語14文、日本語9文、英語9文、すべて学習データ外)を Whisper large-v3 で書き起こし、台本との文字誤り率(CER)を測った。日本語は漢字の表記ゆれ(「あさって」と「明後日」など)で誤りにならないよう、カタカナの読みに直してから比べている。

まず3言語の全32文の平均。カッコ内は完全一致の数。

ステップ 10時間版 5時間版 3時間版
1,000 43.8%(2) 41.9%(2) 43.8%(1)
2,000 16.6%(7) 17.7%(12) 17.6%(9)
3,000 7.7%(16) 6.2%(16) 9.9%(14)
4,000 5.9%(21) 3.7%(19) 2.7%(25)
5,000 2.1%(23) 3.3%(20) 4.5%(23)
10,000 1.4%(24) 1.1%(23) 1.7%(24)
15,000 0.8%(26) 0.7%(26) 2.0%(24)
20,000 0.7%(27) 0.8%(26) 0.9%(25)
30,000 0.7%(28) 0.8%(26) 1.7%(26)
40,000 1.2%(25) 1.7%(26) 0.7%(26)
45,000 3.9%(25) 0.7%(28) 0.7%(27)
50,000 0.7%(28) 0.7%(26) 0.7%(28)
60,000 1.8%(26) 0.8%(27) 1.9%(25)

言語別に見ると、こうなる(クロアチア語 / 日本語 / 英語)。

ステップ 10時間版 5時間版 3時間版
5,000 2.8 / 1.2 / 1.8% 6.5 / 1.2 / 0.3% 2.0 / 1.8 / 11.1%
10,000 2.2 / 1.2 / 0.3% 1.7 / 1.2 / 0.3% 2.9 / 1.2 / 0.3%
20,000 0.8 / 1.2 / 0.0% 0.9 / 1.2 / 0.0% 0.8 / 1.8 / 0.3%
30,000 0.7 / 1.2 / 0.0% 1.1 / 1.2 / 0.0% 3.2 / 1.2 / 0.0%
50,000 0.7 / 1.2 / 0.0% 0.9 / 1.2 / 0.0% 0.7 / 1.2 / 0.0%
  • 一番良かったのは、10時間版が30,000と50,000ステップ、5時間版が45,000ステップ、3時間版が50,000ステップ。どれも全体0.7%、32文中28文が完全一致で、3つとも同じところに着いた
  • 途中で数字が跳ねている所は、ほぼ1単語の違い。「Bok!(やあ)」が「Bog」、「Hi!」が「Bye.」と聞き取られたなど、1〜2語の短い文は1文字違うだけで誤り率が大きく跳ねる
  • 3時間版は、15,000〜35,000ステップでクロアチア語が3%台になっている。中身を見ると、ほとんどが「Bok!」を「Blok」と読む1文。50,000ステップでは直っていた。データが少ないと、短い文の癖が抜けるまで時間がかかるようだ
  • 日本語の1.2%は、毎回「しーっ、静かに。」の「しーっ」が「し」と書き起こされる1文だけ。長音をどこまで書くかの問題で、聞くとちゃんと「しーっ」と言っている
  • クロアチア語の残りは「prekosutra(あさって)」が「preko sutra」と2語に分けて書かれるなど、書き起こし側の癖がほとんど

10時間・5時間・3時間の差は、誤差の範囲だった。 少なくとも「台本通りに読めるか」については、各言語3時間で足りた。ただし3時間版は落ち着くまでに長くかかったので、4万ステップ以上は回した方がいい。

専門用語だらけの文で比べる

普段の会話ならデータが少なくても足りるとして、学習データにほとんど出てこない難しい単語なら、データが多い方が強いのではないか。そう考えて、医学・IT・法律・化学・金融などの専門用語を詰め込んだ文を10文作り、3言語で読ませた。どのモデルも50,000ステップのものを使った。

  1. 心筋梗塞の疑いがあるので、至急、冠動脈造影と血栓溶解療法の準備をしてください。
    • We suspect a myocardial infarction, so please prepare coronary angiography and thrombolytic therapy immediately.
    • Sumnjamo na infarkt miokarda, zato odmah pripremite koronarnu angiografiju i trombolitičku terapiju.
  2. このアルゴリズムは、畳み込みニューラルネットワークと再帰型ネットワークを組み合わせた構造です。
    • This algorithm combines a convolutional neural network with a recurrent architecture.
    • Ovaj algoritam kombinira konvolucijsku neuronsku mrežu s rekurentnom arhitekturom.
  3. 被告人の弁護士は、証拠の違法収集を理由に、控訴審で無罪を主張した。
    • The defendant's attorney argued for acquittal on appeal, citing the unlawful acquisition of evidence.
    • Branitelj optuženika zatražio je oslobađajuću presudu u žalbenom postupku zbog nezakonito pribavljenih dokaza.
  4. 光合成では、葉緑体のチラコイド膜で電子伝達系が働き、アデノシン三リン酸が合成される。
    • In photosynthesis, the electron transport chain in the thylakoid membrane of the chloroplast produces adenosine triphosphate.
    • U fotosintezi lanac prijenosa elektrona u tilakoidnoj membrani kloroplasta proizvodi adenozin-trifosfat.
  5. 量子もつれを利用した暗号鍵配送は、盗聴を原理的に検出できる。
    • Quantum key distribution based on entanglement can, in principle, detect any eavesdropping.
    • Kvantna distribucija ključeva temeljena na spregnutosti u načelu može otkriti svako prisluškivanje.
  6. 中央銀行は、インフレ率の上昇を受けて、政策金利の引き上げと量的引き締めを決定した。
    • Responding to rising inflation, the central bank decided to raise interest rates and begin quantitative tightening.
    • Zbog rasta inflacije središnja banka odlučila je povisiti kamatne stope i započeti kvantitativno pooštravanje.
  7. 変形性膝関節症の患者には、ヒアルロン酸の関節内注射と理学療法を併用します。
    • Patients with knee osteoarthritis receive intra-articular hyaluronic acid injections combined with physiotherapy.
    • Pacijenti s osteoartritisom koljena dobivaju intraartikularne injekcije hijaluronske kiseline uz fizioterapiju.
  8. この橋梁は、鉄筋コンクリートの床版を、プレストレストコンクリートの桁で支えている。
    • This bridge supports a reinforced concrete deck on prestressed concrete girders.
    • Ovaj most nosi armiranobetonsku ploču na prednapregnutim betonskim nosačima.
  9. 仮想通貨の取引所は、分散型台帳の整合性を、合意形成アルゴリズムで検証している。
    • The cryptocurrency exchange verifies the integrity of its distributed ledger with a consensus algorithm.
    • Mjenjačnica kriptovaluta provjerava cjelovitost distribuirane glavne knjige algoritmom konsenzusa.
  10. 抗生物質の過剰投与は、多剤耐性菌の出現を招き、院内感染のリスクを高める。
  • Excessive use of antibiotics leads to multidrug-resistant bacteria and increases the risk of nosocomial infections.
  • Prekomjerna uporaba antibiotika dovodi do multirezistentnih bakterija i povećava rizik od bolničkih infekcija.
文 10時間版 5時間版 3時間版
1. 心筋梗塞の疑いがあるので、至急、冠動脈造影と血栓溶解療法の準備をしてください。 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
2. このアルゴリズムは、畳み込みニューラルネットワークと再帰型ネットワークを組み合わせた構造です。 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
3. 被告人の弁護士は、証拠の違法収集を理由に、控訴審で無罪を主張した。 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
4. 光合成では、葉緑体のチラコイド膜で電子伝達系が働き、アデノシン三リン酸が合成される。 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
5. 量子もつれを利用した暗号鍵配送は、盗聴を原理的に検出できる。 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
6. 中央銀行は、インフレ率の上昇を受けて、政策金利の引き上げと量的引き締めを決定した。 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
7. 変形性膝関節症の患者には、ヒアルロン酸の関節内注射と理学療法を併用します。 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
8. この橋梁は、鉄筋コンクリートの床版を、プレストレストコンクリートの桁で支えている。 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
9. 仮想通貨の取引所は、分散型台帳の整合性を、合意形成アルゴリズムで検証している。 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語
10. 抗生物質の過剰投与は、多剤耐性菌の出現を招き、院内感染のリスクを高める。 英語 日本語 クロアチア語 英語 日本語 クロアチア語 英語 日本語 クロアチア語

結果。

クロアチア語 日本語 英語 30文中の完全一致
10時間版 0.6% 1.5% 4.6% 17
5時間版 0.3% 1.0% 3.9% 20
3時間版 0.5% 1.0% 4.1% 18

10時間版の方が強い、という結果にはならなかった。 3つとも同じくらいで、むしろ5時間版がわずかに良い。念のため10時間版と5時間版を60,000ステップのモデルでも測ると、10時間版1.9%、5時間版2.0%と逆転した。つまり、この差はたまたまの揺れで、どれが上とも言えない。なお3時間版だけは、GPU が別の作業で埋まっていたので CPU で合成と書き起こしをした。そのぶん条件は少しだけ違う。

面白かったのは、間違いの中身。

  • 英語の「cryptocurrency」は、3つのモデルすべてが「Kripke-Kunershi」「Kripke-Kinoshi」「Kripik-Innershi」のように聞き取られた
  • 「intra-articular」「multidrug-resistant」「angiography」も、3つのモデルが同じように崩れた
  • 日本語の「冠動脈造影」は3つとも「〜増え」、「床版」は3つとも「障板」と書き起こされた
  • クロアチア語の「pooštravanje(引き締め)」は、すべてのモデルが「poštravanje」と聞き取られた

データ量が違うモデルが、同じ単語で同じように間違える。英語については原因がはっきりしていて、モデルではなく文字を発音記号に直す部分だった。

今回のモデルは文字を直接読まず、発音記号を読む。英語では、辞書にない単語の発音を g2p_en が推測する。実際に確かめると、「cryptocurrency」は「クリパキュナーシ」に近い発音記号に、「angiography」は途中に n が入った発音記号に変換されていた。モデルは渡された発音記号をその通りに声にしているだけなので、学習データが10時間でも3時間でも同じ所で間違える。

日本語は事情が少し違う。OpenJTalk の読みは「床版(ショーバン)」「冠動脈造影(カンドーミャクゾーエー)」と正しかった。「床版」が「障板」になったのは同じ読みの別の漢字で、読み方としては合っている。「造影」が「増え」になったのは、珍しい言葉を Whisper が聞き慣れた言葉に寄せたのか、モデルの発音が甘いのか、今回の測り方では区別できない。ただ、ここでも3つのモデルは同じように間違えていた。

つまりこの仕組みでは、少なくとも英語の専門用語の強さは、学習データの量ではなく発音辞書で決まる。専門用語に強くしたいなら、データを増やすより、辞書に単語を登録する方が早い。

まとめ

  • 3言語を1つの小さいモデル(合計約3,200万パラメータ)で喋らせられた
  • 学習データは各言語10時間でも5時間でも3時間でも、読みの正確さは最終的にほぼ同じだった。3時間版は落ち着くまで少し長くかかる
  • 専門用語でも差は出なかった。間違いは発音辞書の側で起きていて、データ量では直らない

データを作るのは時間もお金もかかるので、まず各言語3時間で作ってみて、足りなければ足す、で良さそうだ。次はこの結果をもとに、言語を10個に増やしてみるつもり。ただし今回測ったのは「何と言っているか」だけ。声の自然さや感情の幅など、文字誤り率で測れない部分では、データが多い方が有利な可能性はある。そこは耳で確かめたい。