日本人のためのVALL-E Xの使い方:日本語音声で感情反映型AIボイスチェンジTTS

日本人のためのVALL-E X(バルイーエックス)の使い方:日本語音声で感情反映型AIボイスチェンジTTS(テキスト音声合成)

 

Contents - 目次(もくじ)

【動画で解説】現代の魔法:VALL-E Xの使い方 – 感情を真似るAIボイスチェンジTTS(テキスト音声合成)

 

 

【現代の魔法】VALL-E Xの使い方:感情反映型AIボイスチェンジャーTTS

視聴時間:26分22秒

文字情報だけでは、わかりにくい場合などにチュートリアル動画をご活用いただけますと幸いです。

 




 

【動画の内容:VALL-E X テキスト音声合成チュートリアル】

0:00 はじめに
1:47 Google Colaboratoryの使い方
2:35 事前準備①:音声ファイルの準備
6:10 Audacityの使い方
10:58 事前準備②:各種インストール
11:38 VALL-E X WebUIの起動
12:24 VALL-E Xの使い方:Infer from audio編
20:58 VALL-E Xの使い方:Make prompt編
22:17 VALL-E Xの使い方:Infer from prompt編
23:45 VALL-E Xの使い方:Infer long text編
25:12 おわりに

 

 

数秒の音声入力で…テキスト音声合成の革命前夜
:VALL-E X

 

 

2023年にマイクロソフトから公開された、ボイスチェンジの可能なテキスト音声合成(Text-To-Speech)技術として有名な

・VALL-E X(バルイーエックス)
VALL-E X | Microsoft

の技術をGoogle Colaboratory上で試すことのできる、チュートリアルコードです。
VALL-E Xの特徴としては

・数秒(公式の説明では3秒)の音声ファイルで音声合成可能
・日本語・英語・中国語に対応
・日本語訛りの英語なども可能
・声の変換だけでなく感情表現も反映

などが挙げられます。
これまでのAIボイスチェンジの常識では、考えられないような短い音声で、声質や感情などを再現してしゃべらせることができるので

えっ…どういうこと?

と思うと同時に、空虚感にも似た感情が湧き起こる方もいるのではないかと思います。
上記リンク先のMicrosoftの公式の説明では、ボイスチェンジの精度は、音声ファイル(音声プロンプト)の

・長さ(再生時間)
・音質
・雑音の有無
・その他の要因

などによって変化してくるようです。
新しい技術のため、まだ、不安定さや荒さなどがあるかと思いますが、短い音声で簡単にボイスチェンジできてしまうVALL-E Xのプログラム

・非公式のVALL-E-Xプログラム
Plachtaa/VALL-E-X(The MIT license)| GitHub
*注:Microsoftからは論文が公開済みですが、ソースコード・学習済みモデルなどは公開されていません。
南洋理工大学電気電子工学部の学生らが、VALL-Eの論文をもと独自に、学習済みモデルを訓練し、プログラムを作成されたようです。また、日本語にも対応させてくださったようです。

をオープンソースで公開してくださった方に感謝です。
2023年には、RVC WebUI(Retrieval-based-Voice-Conversion-WebUI)の登場とともに音声AI・AIボイスチェンジャーが身近な存在になりRVCブームが起こりましたが、オープンソースとして公開してくださることにより、VALL-E Xの技術に関心を持ち始める音声AI初学者の方もいるのではないかと思います。

 

 

チュートリアルコードリンク・プログラムのライセンス

 

 

VALL-E X WebUIを日本人の方が気軽に試せるように、使い方の解説などを入れたチュートリアルコードを公開しました。
VALL-E Xの動かし方が分からない日本人のAI初学者の方の参考になることがありましたら幸いです。

Google Colaboratoryのチュートリアルコードへのリンク:
VALL-EX-for-Japanese-AI-Beginners.ipynb(The MIT License)| Google Colaboratory

 

チュートリアルコード「VALL-EX-for-Japanese-AI-Beginners.ipynb」のライセンス:

The MIT License

Copyright 2023 child programmer

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 

 

VALL-E Xの使い方
– 最終更新:2024年1月1日

 

 

今回のプログラムは、GPUを設定して使っていきます
:上部メニュー「ランタイム – ランタイムのタイプを変更 – T4 GPU」

 

 

【事前準備①】音声ファイルの準備

 

 

VALL-E Xでは、

・ウェブブラウザの機能で音声を録音

して使うことも可能です。
ただ、マイクなどがないと音質が悪くなり、音量が小さいとボイスチェンジの精度が落ちる可能性が考えられます。
チュートリアルでは、以下の音声ファイルを利用させていただきました。

 

【チュートリアルで使わせていただいている音声素材について】

プロンプトに入力する音声素材。
チュートリアルでは、以下の音声を活用させていただきました。

声(女性の声)の音声素材ダウンロード:
あみたろの声素材(セリフ素材)一括ダウンロード | あみたろの声素材工房
(PCM44,100Hz/16ビット/モノラルのWAV形式)
クレジット:あみたろの声素材工房 https://amitaro.net/

声(女性の声)の音声素材ダウンロード:
つくよみちゃんコーパス│声優統計コーパス(JVSコーパス準拠) | つくよみちゃん
(96,000Hz/32ビット/モノラルのWAV形式)
クレジット:つくよみちゃんコーパス https://tyc.rei-yumesaki.net/material/corpus/

数秒(3秒)〜10秒の音声ファイルを準備するには、場合によっては、音声ファイルを編集する必要があります。
チュートリアルでは、一例として、Windows・Mac環境で無料で使える音声編集アプリ

Audacity(オーダシティ)

で、プロンプトに入力する音声素材を編集しています。

VALL-E Xを試した範囲では、音声ファイルが長くなると音質はよくなる傾向がありますが、テキスト音声合成に不具合が出やすい印象を受けました。
音声の長さや、音声の内容などを変更して出力結果がどう変わるのか?色々と試行錯誤してみてください。

 

【Audaityで音声ファイルの結合方法】

結合したい音声ファイルをAudacityのウインドウ内にドラッグ&ドロップ後に、画面上部の「移動ツール」

「移動ツール」をクリック - Audaityで音声ファイルの結合方法 VALL-E X

をクリックします。
その後、結合したい音声を1つのトラックにドラッグして

結合したい音声をドラッグして音声を1つに結合 - Audaityで音声ファイルの結合方法

音声を結合します。

 

【Audaityで音声ファイルを短くする方法】

短くしたい音声ファイルをAudacityのウインドウ内にドラッグ&ドロップ後に、画面上部の「選択ツール」

「選択ツール」をクリック - Audaityで音声ファイルを短くする方法 VALL-E X

をクリックします。
その後、削除したい音声の箇所をドラッグして選択

削除したい箇所を選択 - Audaityで音声ファイルを短くする方法

します。
特定の箇所を選択した状態で、上部メニュー内の「編集 – 削除

「編集」メニュー内の「削除」をクリック - Audaityで音声ファイルを短くする方法

をクリックすると、音声ファイルを短くすることができます。

 

【Audaityで音声ファイルの出力(ダウンロード)方法】

編集した音声ファイルの出力(ダウンロード)をするには、上部メニュー内の「ファイル – 書き出し – WAVとして書き出し

WAVとして書き出し - Audaityで音声ファイルのダウンロード方法

をクリックします。
保存」のウインドウで、「名前」(半角英数)「ダウンロード場所」「エンコーディング」(今回は16bit)を設定

保存の設定例 - Audaityで音声ファイルのダウンロード方法

して、「保存」をクリックします。
メタデータタグを編集」のウインドウでは、今回は、特に何も編集せずに

「メタデータタグを編集」の設定例 - Audaityで音声ファイルのダウンロード方法

OK」にしました。
これで、「保存」のウインドウで指定した「ダウンロード場所」に編集した音声ファイルが出力されます。

 

 

【事前準備②】各種インストール

 

 

VALL-E Xのリポジトリのクローンや、依存関係のインストール、プログラムの書き換えなどを行います。

 

実行コード

# @title 実行コード
!git lfs install
!git clone https://github.com/Plachtaa/VALL-E-X
%cd VALL-E-X
# python 3.10.12の際の各種インストールのバージョン指定
!pip install torchaudio==2.1.0 torchvision==0.16.0 torch==2.1.0 encodec==0.1.1 langid==1.1.6 wget==3.2 Unidecode==1.3.7 pyopenjtalk==0.3.3 pypinyin==0.50.0 cn2an==0.5.22 jieba eng_to_ipa==0.0.2 SudachiPy==0.6.8 SudachiDict-core==20230927 openai-whisper==20231117 phonemizer==3.2.1 vocos==0.1.0 kaleido==0.2.1 cohere==4.39 openai==1.6.1 tensorflow-probability==0.23.0 typing-extensions==4.8.0 gradio==3.41.2 textfile

# Gradioで「Public URL」の機能をオンにするために「launch-ui.py」のコード「launch()」を「launch(share=True)」に変換
import textfile 
textfile.replace('launch-ui.py', 'launch()', 'launch(share=True)')

# 各種バージョンの確認
print('(実行時点のバージョンです)') #2024年11月1日実行時点 python 3.10.12
import platform
print('python ' + platform.python_version())

 

出力例

Git LFS initialized.
Cloning into 'VALL-E-X'...
・・・・・
Successfully installed SudachiDict-core-20230927〜wget-3.2
(実行時点のバージョンです)
python 3.10.12

 

 

【VALL-E Xの起動】

 

 

ウェブインターフェース上で音声変換を実施します。
以下のコードを実行後に表示される

Running on public URL: https://〜.gradio.live

のURLをクリックするとVALL-E Xが使えます。

*何かしらの原因によりGradioのサーバーが停止していると「Public URL」が出力されないようです。
その際には、また、時間をあけて再度、一連のコードを実行してみてください。
 

実行コード

# @title 実行コード
!python3 launch-ui.py --colab

 

出力例

default encoding is utf-8,file system encoding is utf-8
You are using Python version 3.10.12
Use 2 cpu cores for computing
/usr/local/lib/python3.10/dist-packages/torch/nn/utils/weight_norm.py:30: UserWarning: torch.nn.utils.weight_norm is deprecated in favor of torch.nn.utils.parametrizations.weight_norm.
  warnings.warn("torch.nn.utils.weight_norm is deprecated in favor of torch.nn.utils.parametrizations.weight_norm.")
Running on local URL:  http://127.0.0.1:7860
Running on public URL: https://〜.gradio.live

This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (〜)

 

 

VALL-E Xの使い方

 

 

VALL-E X can synthesize high-quality personalized speech with only a 3-second enrolled recording of an unseen speaker as an acoustic prompt, even in another language for a monolingual speaker.
(VALL-E Xは、未知の話者の3秒間の録音音声を音響プロンプトとして利用するだけで、モノリンガル話者[単一言語話者]でも他言語の高品質なパーソナライズ音声を合成することができます。)

This implementation supports zero-shot, mono-lingual/cross-lingual text-to-speech functionality of three languages (English, Chinese, Japanese)
(この実装は、ゼロショット、3言語[英語、中国語、日本語]の単一言語/他言語音声合成機能をサポートしています。)

 

 

VALL-E Xの使い方:Infer from audio編
(音声ファイルからAIボイスチェンジTTS)

 

Infer from audio編(音声ファイルからAIボイスチェンジTTS):日本人のためのVALL-E Xの使い方
*画像をクリックすると拡大されます

 

Upload a speech of 3~10 seconds as the audio prompt and type in the text you’d like to synthesize.
(音声プロンプトとして3~10秒の音声をアップロードし、合成したいテキストを入力します。)

The model will synthesize speech of given text with the same voice of your audio prompt.
(このモデルは、与えられたテキストの音声を、音声プロンプトと同じ音声で合成します。)

The model also tends to preserve the emotion & acoustic environment of your given speech.
(また、このモデルは与えられた音声の感情や音響環境を保持する傾向があります。)

For faster inference, please use “Make prompt” to get a .npz file as the encoded audio prompt, and use it by “Infer from prompt”
(より高速な推論を行うには、「Make prompt」の機能を使って、エンコードされた音声プロンプトとして「npz形式ファイル」を取得し「Infer from prompt」で使用してください。)

 

・Text:
(テキスト・文章を入力)
数十年後にAIの歴史を振り返った時、2023年は音声AIの普及にとってターニングポイントとなった年だと認識されているだろう。

今回のことは、本当に、本当に、ごめんなさい。
(反省:反省している音声を使用した際の文章例)

もー!あなたのことは、信じられないからね!
(怒り:怒っている音声を使用した際の文章例)

うわあっ。びっくりしたなーもー。
(驚き:驚いている音声を使用した際の文章例)

本当に…こんなことが起こるなんて、信じられない…
(悲しみ:悲しい声の音声を使用した際の文章例)

ちっ、ちがいますよ〜。冷蔵庫のケーキを食べたのは私じゃありませんから!
(慌てる:慌てている音声を使用した際の文章例)

ご主人様、今日はどうなさいますか?
(メイド:メイド喫茶風の音声を使用した際の文章例)

ここにテキスト音声合成(AIにしゃべらせたい)したい、文章を入力します。
使ってみた感じでは、1文程度(100文字以下)が無難かもしれません。

 

・language:
(言語設定)
auto-detect

これから入力する音声ファイルの言語を指定します。
基本的には「auto-detect」(自動検出)で大丈夫かと思います。
手動でも「English」(英語)「中文」(中国語)「日本語」を指定できます。

 

・accent:
(言語のアクセントの設定)
日本語

テキスト音声合成する際の、アクセントを指定します。
no-accent」(アクセントなし)「English」(英語)「中文」(中国語)「日本語」を指定できます。
ここの設定を変更すると日本語英語などの喋り方をすることができます。

 

・Transcript:
(文字起こしの設定)
サービスマネージャー導入駅のため、大井町駅から、遠隔管理している。
*つくよみちゃんコーパス Vol.1 声優統計コーパス(JVSコーパス準拠)「VOICEACTRESS100_004.wav」の音声ファイルを利用する場合の例

何も入力しないとOpenAI社の開発した「Whisper」(ウィスパー)を使い、これから入力する音声ファイルの文字起こしが行われます。
使ってみた感じでは、うまく文字起こしされていない場合もありますので、ここの欄に音声ファイルで喋っている内容を、自力で入力した方が無難かもしれません。
文字起こしがうまくいっていない場合には、テキスト音声合成の不安定さが増す印象を受けています。

 

・uploaded audio prompt:
(AIボイスチェンジ希望の音声ファイルの設定)
(この欄に音声ファイルをドラッグ&ドロップ)

数秒(3秒)〜10秒程度の音声ファイル(WAV形式・MP3形式・OGG形式)を準備し、ここに音声ファイルをドラッグ&ドロップします。
アップロードされると、ここの欄で音声を再生することもできます。

 

・recorded audio prompt:
(音声の録音の設定)
(空欄)

音声ファイルが準備できない方は、ここの機能を使うと、ウェブブラウザ上で音声を録音したものを使えます。
ただ、マイクなどの入力機器をお持ちでない場合には、音質が低くなりやすいかと思います。

 

ここまでの設定が完了したら

・Generate!(生成する)

ボタンをクリックします。
しばらくすると、

・Message(メッセージ)

に、文字起こし結果などの処理内容が出力され

・Output Audio(AIボイスチェンジのテキスト音声合成した音声ファイルの出力結果)

で、音声の再生と、音声ファイルのダウンロードができるようになります。

試した範囲の情報では、10秒以上のファイルでも処理できることもありましたが、再生時間が長くなるとボイスチェンジ処理時に時間がかかるようでした。1分を超える処理時間になるとエラーが出やすい印象を受けたのと、音声ファイルが長いと、テキスト音声合成の音質は向上するようでしたが、意味不明の言葉を話すなどの不安定性が高くなるようでした。
また、音声ファイルの話す内容によっても、テキスト音声合成の精度(ちゃんとした言葉になるか?)に影響が出るのではないかと思われました。音声ファイルの音量が大きい方が、音質が向上するかもしれません。

チュートリアルでは、感情表現が豊かな音声を「あみたろ」さんの音声ファイルのいくつかをAudacityで結合させたものを使ってみました。
テキスト音声合成で感情豊かな出力が出るのは不思議ですね。

 

その他にも、

・Prompt name(プロンプトの名前を指定)
*チュートリアルでは「prompt_tukuyomi」という名前にしています

で、半角英数で任意の名前を設定後に

・Make prompt!(プロンプトの作成)

のボタンをクリックすると「npz形式」のプロンプトのファイルを生成することができます。
このファイルは

・Infer from prompt(作成したプロンプトでAIボイスチェンジテキスト音声合成)
・Infer long text(作成したプロンプトで長めの文章をAIボイスチェンジテキスト音声合成)

の機能で使うことができますので、必要に応じてダウンロードしておきます。

 

 

VALL-E Xの使い方:Make prompt編
(音声ファイルからプロンプト作成)

 

Make prompt編(音声ファイルからプロンプト作成):日本人のためのVALL-E Xの使い方
*画像をクリックすると拡大されます

 

Upload a speech of 3~10 seconds as the audio prompt.
(音声プロンプトとして3~10秒の音声ファイルをアップロードします。)

Get a .npz file as the encoded audio prompt. Use it by “Infer with prompt”
(エンコードされた音声プロンプトとして「npz形式」ファイルを入手します。「Infer with prompt」で使用します。)

 

・Prompt name:
(プロンプトの名前の設定)
prompt_tukuyomi2

後でわかりやすいように、半角英数で任意の名前を指定します。

 

・Transcript:
(文字起こしの設定)
サービスマネージャー導入駅のため、大井町駅から、遠隔管理している。
*つくよみちゃんコーパス Vol.1 声優統計コーパス(JVSコーパス準拠)「VOICEACTRESS100_004.wav」の音声ファイルを利用する場合の例

何も入力しないとOpenAI社の開発した「Whisper」(ウィスパー)を使い、これから入力する音声ファイルの文字起こしが行われます。
使ってみた感じでは、うまく文字起こしされていない場合もありますので、ここの欄に音声ファイルで喋っている内容を、自力で入力した方が無難かもしれません。
文字起こしがうまくいっていない場合には、テキスト音声合成の不安定さが増す印象を受けています。

 

・uploaded audio prompt:
(AIボイスチェンジ希望の音声ファイルの設定)
(この欄に音声ファイルをドラッグ&ドロップ)

数秒(3秒)〜10秒程度の音声ファイル(WAV形式・MP3形式・OGG形式)を準備し、ここに音声ファイルをドラッグ&ドロップします。
アップロードされると、ここの欄で音声を再生することもできます。

 

・recorded audio prompt:
(音声の録音の設定)
(空欄)

音声ファイルが準備できない方は、ここの機能を使うと、ウェブブラウザ上で音声を録音したものを使えます。
ただ、マイクなどの入力機器をお持ちでない場合には、音質が低くなりやすいかと思います。

 

ここまでの設定が完了したら

・Make!(プロンプトを作成する)

ボタンをクリックすると「npz形式」のプロンプトのファイルを生成することができます。
注:「Infer from audio」の「Make prompt!」(プロンプトの作成)で作成したものと同じものかと思われます。

このファイルは

・Infer from prompt(作成したプロンプトでAIボイスチェンジテキスト音声合成)
・Infer long text(作成したプロンプトで長めの文章をAIボイスチェンジテキスト音声合成)

の機能で使うことができますので、必要に応じてダウンロードしておきます。

 

 

VALL-E Xの使い方:Infer from prompt編
(作成したプロンプトでAIボイスチェンジTTS)

 

Infer from prompt編(作成したプロンプトでAIボイスチェンジTTS):日本人のためのVALL-E Xの使い方
*画像をクリックすると拡大されます

 

Faster than “Infer from audio”.
(「Infer from audio」の機能よりも速い。)

You need to “Make prompt” first, and upload the encoded prompt (a .npz file)
(まずは、「Make prompt」の機能などでプロンプトを作成し、エンコードされたプロンプト[npz形式ファイル]をアップロードする必要があります。

 

 

・Text:
(テキスト・文章を入力)
数十年後にAIの歴史を振り返った時、2023年は音声AIの普及にとってターニングポイントとなった年だと認識されているだろう。

今回のことは、本当に、本当に、ごめんなさい。
(反省:反省している音声を使用した際の文章例)

もー!あなたのことは、信じられないからね!
(怒り:怒っている音声を使用した際の文章例)

うわあっ。びっくりしたなーもー。
(驚き:驚いている音声を使用した際の文章例)

本当に…こんなことが起こるなんて、信じられない…
(悲しみ:悲しい声の音声を使用した際の文章例)

ちっ、ちがいますよ〜。冷蔵庫のケーキを食べたのは私じゃありませんから!
(慌てる:慌てている音声を使用した際の文章例)

ご主人様、今日はどうなさいますか?
(メイド:メイド喫茶風の音声を使用した際の文章例)

ここにテキスト音声合成(AIにしゃべらせたい)したい、文章を入力します。
使ってみた感じでは、1文程度(100文字以下)が無難かもしれません。

 

・language:
(言語設定)
auto-detect

これから入力する音声ファイルの言語を指定します。
基本的には「auto-detect」(自動検出)で大丈夫かと思います。
手動でも「English」(英語)「中文」(中国語)「日本語」を指定できます。

 

・accent:
(言語のアクセントの設定)
日本語

テキスト音声合成する際の、アクセントを指定します。
no-accent」(アクセントなし)「English」(英語)「中文」(中国語)「日本語」を指定できます。
ここの設定を変更すると日本語英語などの喋り方をすることができます。

 

・Voice preset:
(声のプリセットの設定)
(空欄)

元々準備された声のプリセットで、AIボイスチェンジテキスト音声合成を試すこともできます。
オリジナルのものを使う場合には、ここの欄を空欄にしておきます。

 

・File:
(プロンプトファイルの設定)
prompt_tukuyomi
(一例)

事前に作成した「npz形式」のファイルをここにドラッグ&ドロップします。

 

ここまでの設定が完了したら

・Generate!(生成する)

ボタンをクリックします。
しばらくすると、

・Message(メッセージ)

に、入力した文章の処理結果などの処理内容が出力され

・Output Audio(AIボイスチェンジのテキスト音声合成した音声ファイルの出力結果)

で、音声の再生と、音声ファイルのダウンロードができるようになります。

 

 

VALL-E Xの使い方:Infer long text編
(作成したプロンプトで長めの文章をAIボイスチェンジTTS)

 

Infer long text編(作成したプロンプトで長めの文章をAIボイスチェンジTTS):日本人のためのVALL-E Xの使い方
*画像をクリックすると拡大されます

 

This is a long text generation demo. You can use this to generate long audio.
(これは長いテキストを生成するデモです。この機能を使って長い音声を生成することができます。)

 

・Text:
(テキスト・文章を入力)
数十年後にAIの歴史を振り返った時、2023年は音声AIの普及にとってターニングポイントとなった年だと認識されているだろう。今後の音声AIの発展が楽しみです。

ここの機能では、1文単位に分割して、処理が進められるようです。
ただ、使ってみた感じでは、処理時間が、長くなるとエラーが出る傾向があるようでした。そのため、期待せずに、1文ずつ、地道に音声変換した方が無難かもしれません。

 

・language:
(言語設定)
auto-detect

これから入力する音声ファイルの言語を指定します。
基本的には「auto-detect」(自動検出)で大丈夫かと思います。
手動でも「English」(英語)「中文」(中国語)「日本語」を指定できます。

 

・accent:
(言語のアクセントの設定)
日本語

テキスト音声合成する際の、アクセントを指定します。
no-accent」(アクセントなし)「English」(英語)「中文」(中国語)「日本語」を指定できます。
ここの設定を変更すると日本語英語などの喋り方をすることができます。

 

・Voice preset:
(声のプリセットの設定)
(空欄)

元々準備された声のプリセットで、AIボイスチェンジテキスト音声合成を試すこともできます。
オリジナルのものを使う場合には、ここの欄を空欄にしておきます。

 

・File:
(プロンプトファイルの設定)
prompt_tukuyomi
(一例)

事前に作成した「npz形式」のファイルをここにドラッグ&ドロップします。

 

ここまでの設定が完了したら

・Generate!(生成する)

ボタンをクリックします。
しばらくすると、

・Message(メッセージ)

に、文の分割結果(Cut into 2 sentences)などの処理内容が出力され

・Output Audio(AIボイスチェンジのテキスト音声合成した音声ファイルの出力結果)

で、音声の再生と、音声ファイルのダウンロードができるようになります。

 

 

【おわりに】VALL-E Xの使い方

 

 

短い音声を使って、AIボイスチェンジした音質で感情豊かに喋りたいことを自由に生成できるというVALL-E Xの技術を使ってみた感じでは、

感情表現を伴ったテキスト音声合成ができてすごい!面白い!

と思いましたが、実用的に使うことを考えると

1分以上推論(ボイスチェンジ)の処理に時間がかかる場合には、エラーとなりやすい…
(Google Colaboratoryでは?長文の出力が難しい?)

入力する音声ファイルの内容の違いや、音声ファイルを長くするなどの要因でちゃんと言葉が生成されない…
(言葉にならない言葉を生成することもあり)

という、不安定さがある感じを受けましたので、今後の発展を期待したいと思います。

技術的には、まだまだ不完全かと思いますが、一連の情報が、テキスト音声合成の最新技術に触れるきっかけになることがありましたら幸いです。

 

 

VALL-E Xの解説動画へのコメントと対応例など
:最終更新 2024年2月18日

 

ご質問など、チュートリアル動画の視聴者の皆さんからあるようでしたら、追記予定です。

 

 

【VALL-E Xの挙動関連】Generate!ボタンを押すと数秒で生成が止まりエラーとなる

 

 

【2024年1月5日時点】

2024年1月5日22時5分あたりに以下の設定

****設定****

【Infer from audio】(音声ファイルから推論)
Text:
数十年後にAIの歴史を振り返った時、2023年は音声AIの普及にとってターニングポイントとなった年だと認識されているだろう。

language:
auto-detect

accent:
日本語

Transcript:
サービスマネージャー導入駅のため、大井町駅から、遠隔管理している。

uploaded audio prompt:
VOICEACTRESS100_004.wav
*「つくよみちゃんコーパス Vol.1 声優統計コーパス(JVSコーパス準拠)」の「02 WAV(+12dB増幅)」フォルダ内

*******

で実行したところ、成功しましたので、現時点でもプログラム自体は機能しているかと思います。

これまで試した範囲で遭遇した事象として

・一度でも何かしらのエラー表示がVALL-E XのWebUI上(ウインドウ)に表示されると、次回以降のジェネレートなどに影響が出て、エラーとなりやすい

ことを経験しています。
報告くださったエラーの傾向として

・数秒で生成がストップし、エラーを出してしまいます

とのことですので、上述のエラーと関係があるかもしれません。
その場合には、

・一度【VALL-E Xの起動】のコードを停止させてから、再度実行し、新たに生成されたpublic URL先のVALL-EXのWebUI(ウインドウ)で実行

するとうまくいくかもしれません。
まずは、「****設定****」に記載させていただいと内容(チュートリアルと同様)で動かせることを確認し、その後、ご自身の用意した音声ファイルで試してみてください。

 

【コメントくださった方のエラーの原因と対応例】

・エラーの原因:
入力する音声ファイルの再生時間が長すぎた。

・対応:
入力する音声ファイルを9秒に編集し直し、【VALL-E Xの起動】のコードを停止させてから、再度実行し、新たに生成されたpublic URL先のVALL-EXのWebUI(ウインドウ)で実行することでテキスト音声合成に成功。

 

 

【VALL-E Xの挙動関連】実行中に、Goolge Colaboratoryの表示で有料版へ促す表示が出る

 

 

【2024年1月3日時点】

2024年1月3日19時50分時点で、この動画のチュートリアルコードをGoogle Colaboratoryの無料枠のGPU T4で実行したところ、確認できた範囲では、4回ほど推論を実行することはできましたので、とりあえずは

・一律に制限はかかっていない状況

だと推測されます。
(ただ、長時間GPUを使われると有料版の利用を促す表示が出る可能性は考えられます。)
もし、報告してくださった表示が出た場合には、一度

・「ランタイムを接続解除して削除」
(場所:上部メニュー内の「 ランタイム 」-「 ランタイムを接続解除して削除」)

を実行してから、再度、接続し直して実行してみてください。
(GPUの使用状況によっては、12時間以上空ける必要があるかもしれません)

 

 

【VALL-E Xの機能関連】RVC WebUIで生成した学習済モデル(pthファイル)は使えませんか?

 

 

【2024年1月13日時点】

使えません。

VALL-E Xでは、ボイスチェンジしたい

・音声ファイル(wav形式・mp3形式など)

を利用する方式ですので、RVCで生成した学習モデル(pth形式ファイル)は使いません。(おそらく使えません)
ただ、関連情報を調べてみるとフォーク(分岐)されたプログラムの中で2024年1月13日時点で一番人気の高いプログラム

0417keito/VALL-E-X-Trainer-by-CustomData | GitHub

では、カスタムデータセットを使って、ファインチューニング(VALL-E Xで使っている学習モデルの微調整)ができるようでした。
(現時点では、プログラムの挙動は確認できていませんので、今でも使えるのか?は不明です)

 

【2024年1月14日時点】

疑問:
RVCの学習モデルはがあるので感情豊かにテキスト音声合成ができると利便性が高いと考え方法を模索中です。

回答:

RVCのTTS(テキスト音声合成)に関連する情報

キーワード「rvc tts」| GitHub
*2024年1月14日確認時点

を調べてみましたが

・”感情表現豊かに”

という機能を付加したTTSは、ざっと見た感じでは見つかりませんでした…
最近は音声変換領域の研究のためのプラットフォームを目指すべく開発されている

open-mmlab/Amphion | GitHub

論文:Amphion: An Open-Source Audio, Music and Speech Generation Toolkit – 2023年12月 | arxiv
(アムピーオーン:オープンソースのオーディオ、音楽、音声生成ツールキット)

に関心がありますが、TTSに関してはRVCはサポートされておらず、2024年1月確認時点の説明では、最先端領域のパフォーマンスを実現するためのモデルとして

・VALL-E
*その他:FastSpeech2 ・VITS ・NaturalSpeech2

などがサポートされているようでした。
そのため、おそらくRVCは現時点では音声合成領域の研究者の間では、TTSに関しては、あまりパフォーマンスを期待されていないのではないか?と推測しています。

今後、RVCに関心を持たれる方が増えることで、感情豊かにTTSをできる研究もされてくることを期待したいですね。

 

 

【VALL-E Xの機能関連】出力音声をバッチファイル形式のような感じで1分毎に出力できないか?

 

 

【2024年1月13日時点】

自分でプログラムを改変する必要があるかと思います。

利便性が高くなりそうな機能ですが、現状で試した範囲のVALL-E Xの挙動としては、

「Infer long text」の機能で一文ごとに自動区切りさせた後に、音声変換を試み、1つのファイルとして出力する仕様もあるが、文字数が増えるとエラーとなりやすい
(Google Colaboratoryの無料枠T4 GPUのためかわかりませんが….)

傾向があるようでした。
そのため、現時点では仮に実装できても実用性は低いかもしれませんので、地道に1文ずつボイスチェンジさせるのが無難かもしれませんので、自分は改変に挑戦しない予定ですのでご了承ください。
(時間と体力に余裕があるようでしたら、プログラミングの勉強を兼ねて改変に挑戦するのもいいかもしれませんが…)

 

【補足:VALL-E Xのプログラムのフォーク一覧】

以下が、VALL-E Xのプログラムのフォーク一覧

Forks – Plachtaa/VALL-E-X | GitHub

です。
ご興味があるようでしたら誰かが、既にご希望された機能を実装されていないか?
調査してみてください。

 

 

【VALL-E Xの推論関連】日本語ではない謎の言語っぽい発音になります…

 

 

【2024年2月18日時点】

カタコトの英語の音声」を元に「日本語の音声を生成」する事例のようです。
自分自身は日本語から日本語に変換することが主ですが、これまで試した感じでは、

・要因①:元の音声の文章の内容
・要因②:元の音声の長さ

によって、場合によっては変な言葉(発音)が生成される印象を受けています。
要因①:元の音声の文章の内容」の対策ですが

・どの文章を使うとうまくいくのか?は、やってみないとわからない

かと思われます。
そのため、色々な文章を試してみて、満足できるレベルの音声を生成できる文章を探す必要はあるかもしれません。
次に、「要因②:元の音声の長さ」の対策ですが

・音声が長い(10秒に近づく)と変な言葉が生成されやすい

印象を受けています。
ただ、不思議ですが、音声が長くてもうまくいくケースも経験していますので、日本語から日本語の推論をするだけでも

・「要因①:元の音声の文章の内容」「要因②:元の音声の長さ」が複雑に影響して推論結果に影響

されるのではないかと感じています。
今回、報告してくださった事象は、「元の音声はカタコトの英語」ということなので、日本語から日本語への推論の時よりも、さらに複雑になるのではないかと推察されます。

 

 

VALL-E/VALL-E Xの論文情報

 

 

マイクロソフトから公開されたVALL-E(バルイー)/VALL-E X(バルイーエックス)の論文の情報を取り上げておきます。

 

 

【VALL-Eの論文】
Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers

 

 

【論文情報】

Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers:Jan 2023 – Microsoft | arxiv
(ニューラルコーデック言語モデルはゼロショットのテキスト音声合成 TTS:Text-To-Speech シンセサイザーである:2023年1月)

・従来のアプローチ:

音素 → メルスペクトログラム(音響特徴量) → 波形

・VALL-Eのアプローチ:

音素 → 離散コード → 波形

プロンプトとして数秒〜10秒程度の音声ファイルを入力するだけで、話者の声、感情、音響環境を保ちつつ、高品質の音声を生成できる可能性を秘めている。

 

 

【VALL-E Xの論文】
Speak Foreign Languages with Your Own Voice: Cross-Lingual Neural Codec Language Modeling

 

 

【論文情報】

Speak Foreign Languages with Your Own Voice: Cross-Lingual Neural Codec Language Modeling:Mar 2023 – Microsoft | arxiv
(自分の声で外国語を話す: 言語を超えたニューラルコーデック言語モデリング:2023年3月)

・VALL-E Xとは?:

言語間のテキスト音声合成(TTS:Text-To-Speech)のための言語間ニューラルコーデック言語モデル。
VALL-Eを拡張し、多言語条件付きコーデック言語モデルのトレーニングを実施。プロンプトとして数秒〜10秒程度の音声ファイルを入力するだけで、話者の声、感情、音響環境を保ちつつ、指定した言語で高品質の音声を生成できる可能性を秘めている。

 

 

by 子供プログラマー | プログラミング入門ウェブ教室