2024年8月号…2部「音…声を取り込んでテキストを読み上げてもらう」

以下に本稿掲載のコードを実行するための手順を解説します(本誌サイトからダウンロードできる,本稿プログラム・フォルダ中の「CQ出版検証係から20240625.txt」と同じ内容).
ここでは動作環境は,Windows11(64bit)にPython3.10.6をインストール済,ログインユーザは「if」としてます.※ユーザ名「if」部分は適宜各環境のユーザ名として読み替えてください.

●コマンドプロンプトを起動し,以下のコマンドで仮想環境「env-va」を作成,有効化します
C:\Users\if>python -m venv env-va
C:\Users\if>.\env-va\Scripts\activate
(env-va) C:\Users\if>

 

●「env-va」フォルダに移動し,「user」フォルダを作成,pipをアップデートします
(env-va) C:\Users\if>cd env-va
(env-va) C:\Users\if\env-va>md user
(env-va) C:\Users\if\env-va>python.exe -m pip install –upgrade pip
(env-va) C:\Users\if\env-va>pip install –upgrade setuptools

 

●「env-va」フォルダ内に「VALL-E-X」をインストールし,必要なライブラリをインストールします
(env-va) C:\Users\if\env-va>git clone https://github.com/Plachtaa/VALL-E-X.git
(env-va) C:\Users\if\env-va>cd VALL-E-X
(env-va) C:\Users\if\env-va\VALL-E-X>pip install -r requirements.txt

 

●CUDA対応PyTorchに更新します
(env-va) C:\Users\if\env-va\VALL-E-X>pip install -U torch –index-url https://download.pytorch.org/whl/cu118

 

●以下のコードをtest.pyとして保存します
import torch

if torch.cuda.is_available():
    print(torch.cuda.get_device_name(0))
else:
    print(“CUDAが無効です.”)

 

●「python test.py」として実行します.以下のようにGPUボード名が表示されCUDAが有効であることを確認します.
(env-va) C:\Users\if\env-va\VALL-E-X>python test.py
NVIDIA GeForce RTX 3060

 

●FFmpegをダウンロード,インストールします.
以下の公式サイトにアクセスし
https://ffmpeg.org/
「Download」をクリック,「Windows」のアイコンをクリックすると
すぐ下の 「Windows EXE Files」に
「Windows builds from gyan.dev」
「Windows builds by BtbN」
の2つのサイト名のリンクが表示されます.
今回は,2つ目の 「Windows builds by BtbN」をクリックすることとします.
クリックすると以下のページに移動します.
https://github.com/BtbN/FFmpeg-Builds/releases

この中から,以下のファイルをダウンロードします.
ffmpeg-master-latest-win64-gpl.zip

ダウンロード後,本ファイルを解凍します.
この中の「bin」フォルダを「C:\Users\if\env-va\」
内に「ffmpeg」フォルダを作成した上(「C:\Users\if\env-va\ffmpeg」の中に),
コピーします.

 

●Windowsの環境変数を設定します.ユーザ環境変数の「Path」に以下を追加します.設定後,再起動します.
C:\Users\if\env-va\VALL-E-X
C:\Users\if\env-va\VALL-E-X\utils
C:\Users\if\env-va\ffmpeg\bin
※ユーザ名「if」の部分は,適宜ご利用の環境に合わせて読み替えてください.

 

●再起動後,「C:\Users\if\env-va\user」フォルダに,
本誌ダウンロードサイトからダウンロードした以下のファイルをエクスプローラで配置します.
settings.ini
tts1.py
tts2.py

 

●テキスト読み上げ実験・・・①プリセット音声を試します.
・コマンドプロンプトを起動し,以下のコマンドで仮想環境「env-va」を有効化します
C:\Users\if>.\env-va\Scripts\activate
(env-va) C:\Users\if>

・「env-va\VALL-E-X」に移動します.
(env-va) C:\Users\if>cd env-va\VALL-E-X

・以下の通り,「user」フォルダ内の「tts1.py」を実行します.
(env-va) C:\Users\if\env-va\VALL-E-X>python ..\user\tts1.py
注意:本コマンド実行時,「VALL-E-X」フォルダにいることを確認してください

・「user」フォルダ内に「vallex_generation.wav」ファイルが生成されている事を確認します.
このファイルを再生すると「インターフェース誌は毎月25日発売です.」と読み上げられることが確認できます.

 

●テキスト読み上げ実験・・・②自分の声を試します.
Windows付属のサウンドレコーダーを起動し「settings.ini」の「sample_transcript」に記載されている内容
(「おかけになった番号は,電波が届かない場所にあるか,電源が入っておりません」)を
読み上げながら録音,保存します.

「C:\Users\if\Documents\サウンド レコーディング」
に「レコーディング.m4a」のように保存されている事を確認します.

先程,FFmpegをインストールしたので,以下のようにwavファイルに変換します.

コマンドプロンプトを立ち上げ以下の様に実行
cd “C:\Users\if\Documents\サウンド レコーディング”
ffpeg -i レコーディング.m4a sample.wav

変換された「sample.wav」ファイルを「C:\Users\if\env-va\user」フォルダに移動します.

仮想環境のコマンドプロンプト画面に戻り以下のように「tt2.py」を実行します.
(env-va) C:\Users\if\env-va\VALL-E-X>python ..\user\tts2.py
注意:本コマンド実行時,「VALL-E-X」フォルダにいることを確認してください

「user」フォルダ内に「vallex_generation.wav」が新しく生成されます.
こちらを再生すると自分の声で再生されることが確認できます.