5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

皆さんは自分の音声で文章を読み上げてくれる機能が欲しくなったことがあるでしょうか?

ちなみに私はありません。

というのは置いておいて…今回はMicrosoftが発表した音声合成モデル VALL-E Xを試しに使ってみたいと思います。

VALL-E Xの面白いポイントはただ準備したテキストを読み上げてくれるのはもちろん、3~10秒程度の音声を準備することで再学習なしのzero-shotで思い通りの声色を生成できることです!(言い過ぎかもしれません)

ということで試してみます。

Install

今回はこちらのGitHub Repositoryを使わせていただきます。

インストールは以下で終わりです。

git clone https://github.com/Plachtaa/VALL-E-X.git
cd VALL-E-X
pip install -r requirements.txt

これ以外に、ffmpegを追加で入れる必要がありそうでした。

モデルのcheckpoint等のファイルは初回実行時に勝手にダウンロードされます。

Basic Generation

まずは通常の音声合成を試してみます。

from scipy.io.wavfile import write as write_wav

import utils
from utils.generation import SAMPLE_RATE, generate_audio, preload_models

text_prompt = "こんにちは。今日はいい天気ですね。"
save_file = "vallex_generation.wav"

preload_models()

audio_array = generate_audio(text_prompt)

write_wav(save_file, SAMPLE_RATE, audio_array)

試すとかわいらしい系の声で読み上げてくれます。

Voice Cloning

ではいよいよ自分の声で読み上げてもらいます。

from scipy.io.wavfile import write as write_wav

import utils
from utils.prompt_making import make_prompt
from utils.generation import SAMPLE_RATE, generate_audio, preload_models

# プロンプトの設定!
model_name = "test"
sample_voice = "sample.wav"
sample_transcript = "夜に吹く風のヒューヒューという音が私を不安にさせる。"

text_prompt = "こんにちは。今日はいい天気ですね。"
save_file = "vallex_cloning.wav"

preload_models()

# プロンプト追加!
make_prompt(name=model_name, audio_prompt_path=sample_voice, transcript=sample_transcript)

audio_array = generate_audio(text_prompt, language="ja", prompt=model_name)

write_wav(save_file, SAMPLE_RATE, audio_array)

先ほどのBasic Cloningとの差分はプロンプト作成部分です。
model_nameで好きなプロンプト名を指定し、sample_wavで使用する音声ファイルのパスを、sample_transcriptで音声ファイル内の文字起こしを設定しています。

これで出力されたvallex_cloning.wavが自分の声で読み上げられた音声です。

所感としては不自然な読み方をするときもあるが、数回やっているうちに一回はいい感じのものが生成される印象でした。(おそらく生成時にランダムノイズ的なのを使っているため?実行ごとに結果が少し変わる)

とはいえ、zero-shotでここまでできるのか~と感じました。

ちなみに、text_promptを英語にして、generate_audioの引数のlanguageをenにすると英語でも読み上げてくれます。

まとめ

zero-shotでここまでできるのはすごい!

Qiitaってwavファイル貼れないのでしょうか?皆様も是非お手元でお試しください。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?