VoxCPM2で日本語で録った自分の声で英語が喋れるか試してみた
こんばんは。ほったりたです。
ローカルで動くTTSを試している連載、今回も番外編です。
前回は対話形式にトライしてみました。
台本の精度が良くなかったり、自分の声の高さを変えたので違和感がありました。
これはまた別途他の方に音声をお借りできたので、対話対話編は後日チャレンジしてみます
今回はちょっと気になったこと。
この日本語でとった声で、英語も喋れるんだろうか。
僕が録ったお手本の音声は、日本語です。英語なんてひとことも入っていません。
それでも英語の文章を渡したら、僕の声のまま英語喋れるのか・・
今回はそれを試しました。
お手本は日本語のまま、英語を渡してみる
やり方は前回とまったく同じです。変えたのは、読ませる文章だけ。
お手本の音声は、前回スマホのボイスメモで録った日本語の15秒。
これをそのまま参照音声として渡して、読ませるテキストだけ英語にします。
wav = model.generate(
text="Hello, this is hottarita. Today I cloned my own voice ...",
reference_wav_path="ref_hottarita.wav", # ← 日本語の録音のまま
cfg_value=2.0,
inference_timesteps=10,
)
設定の変更も、英語用のオプションも、何もありません。本当にテキストを差し替えただけです。
短い英文で試した結果がこちら
まず短い一文を読ませてみました。
あれ・・英語。喋ったわ。
日本語しか入っていないお手本から、英語の発音が出てくる。
ひとつ正直に書いておくと、発音がネイティブとしてどのくらい自然なのかは、
僕の英語力では正確に評価しきれません。
ただ、少なくとも僕の耳には「僕っぽい声が、それらしい英語を喋っている」ように聞こえました。
長い英文でも、最後まで僕の声だった
短文でいけたので、次は長文です。英語で数文つづく、30秒ぶんくらいの文章を一気に読ませてみました。
これも一発で、最後まで完走しました。
長文なので、例の「長い音声だとMacのGPUが止まる問題」の領域に入るんですが、第4回で作った逃がしパッチがここでもそのまま効いてくれました。日本語でも英語でも、仕組みは同じということですね。
英語にも「間」を入れる
ただ、これも間を入れないと、一気に生成した版は文と文の間がなくて、少しせかせかして聞こえます。
これは日本語のときに作った「一文ずつ生成して、あいだに無音を挟む」方式で直せます。日本語は「。」で区切っていましたが、英語はピリオドやクエスチョンマークで区切るように、分割のルールをひとつ足しただけです。
ぐっと落ち着いて聞こえると思います。日本語で作った仕組みが、ほぼそのまま英語でも使えました。
つまり、何ができるようになったのか
整理すると、こういうことです。
日本語で15秒録っただけの声から、日本語も英語も喋れる「自分の声」ができた。
しかもこれ、全部ローカルで動いています。クラウドのAPIを呼んでいないので、何回試してもお金はかかりません。英文を差し替えて何度でも作り直せます。
ここまで来ると、欲が出ますよね。自分の記事の英語版を、自分の声で読み上げて、海外向けに出してみるとか。日本語と英語のバイリンガルなポッドキャストとか。このあたりは、また試したら書きます。
まとめ
日本語の参照音声のまま、英語のテキストを渡すだけで、自分の声のクローンが英語を喋りました。設定の変更はゼロ。長文は第4回のパッチ前提で完走し、間入れの仕組みも英語対応の一行追加で動きました。
発音の質の評価は僕の英語力では限界がありますが、普通に僕の声で英語喋りました。
最後まで読んでいただきありがとうございました!
普段は「はっきんぐパパ」として、子どもと作ったものづくりの記事も書いていますので、ぜひ覗いてみてください
↓
いいなと思ったら応援しよう!
いつも読んで頂きありがとうございます!
いただいたサポートは子どものためのもの作りの活動費に使わせていただきます!
