見出し画像

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回のパッチ前提で完走し、間入れの仕組みも英語対応の一行追加で動きました。

発音の質の評価は僕の英語力では限界がありますが、普通に僕の声で英語喋りました。 



最後まで読んでいただきありがとうございました!

普段は「はっきんぐパパ」として、子どもと作ったものづくりの記事も書いていますので、ぜひ覗いてみてください

https://note.com/hackingpapa

いいなと思ったら応援しよう!

Hottarita(ほったりた) いつも読んで頂きありがとうございます! いただいたサポートは子どものためのもの作りの活動費に使わせていただきます!