🎤

RVCで社長の声になりすませるか

2023/07/31に公開

はじめに

株式会社Voicy データチーム所属のいしけんです。
今回は少し前に話題になったRVCボイスチェンジャーで(いまさらながら)遊んでみたので、そのことについて簡単にまとめてみようと思います。5分程度の軽い読みものとして目を通していただければ幸いです。
ちなみに私は音声変換等の技術について詳しい人間ではなく、機械学習の分野に精通している人間ではないので記事の内容に誤りがある可能性があります。もし誤り等ございましたらコメント等で教えていただけると幸いです。

RVCとは

Retrieval-based-Voice-Conversionの略称です。
RVCはオープンソースの機械学習を利用したボイスチェンジャーで、あらかじめ用意した音声を学習させモデルを作成し、声質を変換することが可能です。
RVCは論文等の形で公開された手法ではなく、github上にオープソースとして公開されています(link)。そのためか、導入方法やRVCのUIに関する解説記事は多くあるのですがアルゴリズムに関する情報がなかなか集まりませんでした。(集まったとしても、私が音声変換の根幹の技術について全くの素人ですので理解できないと思いますが。)本記事もアルゴリズムの解説は行わず、また導入方法当の解説もほかの方が執筆した記事にまかせることにして、とりあえずえいやで試してみた結果を書き記すという立ち位置で執筆しようと思います。

学習

今回RVCを試してみようと思った理由の一つが、私が所属しているVoicyは音声プラットフォームであり音声データを大量に保有しており学習データをすぐに準備できそうという理由になります。今回はVoicy社長が配信しているこちらのチャンネルの放送の音声データを用いて「任意の音声」→「Voicy社長の音声」への変換を試してみたいと思います。
学習データとして、上記チャンネルから複数本の放送の音声データを対象とし、合計25分ほどのデータを用いて学習をしてみたいと思います。高品質な10分程度の学習データがあれば学習データとして問題ないとのことです。
私の環境では20Epochの学習が30分ほどで完了しました。

結果

上記の学習で作成したモデルを試してみたいと思います。今回は学習元と同じくVoicy上にある私が話した放送のこちらの2つ目のチャプターを変換してみたいと思います。

元の音声がこちらです。

この音声を学習したモデルに入力し、出てきた音声がこちらです。

冒頭の部分はかなり社長の音声に近いように思えます。それ以外の部分については冒頭部分ほどの近さはないもののところどころ雰囲気が近いような声に変換されているように感じます。

考察・感想

出だしの「はい」という部分がかなりの近さで変換できた理由は、「はい」というフィラーに近い感情やしゃべり方に依存しないような音声であったため、おそらく学習データにかなり近い音があり再現が可能であったのではないかと考えられます。それ以外の部分の再現が冒頭部分に劣っているのは、声質は似せらたものの僕のしゃべり方や感情ののせ方などが社長のものとは離れており再現がいまいちだったのではないかと思います。

今回はVoicyの音声データを用いてRVCを試してみました。とくに難しい操作もなく導入から学習・推論までおこなうことができた、学習データが少量で精度の良い推論ができた、高速での推論ができたというのは非常に驚きました。同時に容易に他人の音声を再現できてしまうという点は使い方を誤ると非常に危険な技術であることを改めて確認できました。弊社での活用について、まだ何も話しに挙がっていなのですが、活用する際には細心の注意を払って考えていきたいと思います。

アルゴリズムについて調べてみたところ、HuBERTやContentVec、FAISSなどが活用されているとのことでした。そもそもの音声変換の根幹やこれらの技術についての理解ができていないので、これらについて勉強し、あらためてRVCの中身を理解することをfuture workにして本記事を終わりたいと思います。

Voicyテックブログ

Discussion