Qwen3-TTS音声合成サンプルプログラム
プログラムの動作
このプログラム sample_qwen3_tts.py は、Qwen3-TTS (Text-to-Speech) モデルを使用して、指定されたテキストから音声を生成し、WAVファイルとして保存するサンプルスクリプトです。
主な機能は以下の通りです。
音声合成: スクリプト内に記述された日本語のテキストを、Qwen3-TTSモデルによって音声に変換します。
ボイス選択: コマンドライン引数で、音声合成に使用するボイス(声の種類)を指定できます。指定がない場合は、デフォルトのボイスが使用されます。
利用可能ボイスの一覧表示: コマンドライン引数に
listを指定することで、tktts_qwen3ライブラリで利用可能なすべてのボイスの名前を表示します。WAVファイル出力: 生成された音声は
sample_qwen3.wavというファイル名で保存されます。
このプログラムは、Qwen3-TTSをPythonアプリケーションに統合するための基本的なインターフェースを示し、ニューラルネットワークベースの音声合成の手軽さを実演することを目的としています。
原理
本プログラムは、tktts_qwen3 というPythonライブラリを介してQwen3-TTSの機能を利用しています。Qwen3-TTSは、テキストを入力として受け取り、それを自然な音声波形に変換する、大規模なニューラルネットワークモデルに基づくText-to-Speechシステムです。
基本的な音声合成の原理は以下の通りです。
テキスト分析: 入力されたテキストを解析し、音素(言語の最小音声単位)やアクセント、イントネーションなどの言語学的特徴を抽出します。
音響特徴量生成: 抽出された言語学的特徴に基づいて、スペクトログラムなどの音響特徴量を生成します。これは、時間経過に伴う音の周波数成分の変化を表すデータです。
ボコーダー(Vocoder)による波形生成: 生成された音響特徴量から、実際に耳に聞こえる音声波形を生成します。Qwen3-TTSのような現代のTTSシステムでは、拡散モデルやGAN (Generative Adversarial Network) ベースのボコーダーなど、高度なニューラルネットワークがこの役割を担い、非常に自然で人間らしい音声を生成することが可能です。
本プログラムはこれらの複雑な過程を抽象化し、tktts_qwen3.load_model() でモデルをロードし、tktts_qwen3.speak() 関数を呼び出すだけで音声合成を実行します。内部的には、Qwen3-TTSモデルがテキストから音響特徴量を生成し、それを音声波形に変換する一連の処理を行っています。
必要な非標準ライブラリとインストール方法
このプログラムを実行するためには、以下の非標準ライブラリが必要です。
tktts_qwen3
これらのライブラリは pip コマンドを使用してインストールできます。
pip install tktts_qwen3
必要な入力ファイル
このプログラムは、特定の入力ファイルを必要としません。 合成するテキストは、プログラムのソースコード内に直接文字列リテラルとして記述されています。
生成される出力ファイル
プログラムが正常に実行されると、以下のファイルがカレントディレクトリに生成されます。
sample_qwen3.wav:内容: プログラム内のテキストをQwen3-TTSモデルで合成した音声データです。指定されたボイスと日本語で読み上げられます。
コマンドラインでの使用例 (Usage)
sample_qwen3_tts.py プログラムは、以下の形式でコマンドラインから実行できます。
デフォルトのボイスで音声合成を実行:
python sample_qwen3_tts.py利用可能なボイスの一覧を表示:
python sample_qwen3_tts.py list
特定のボイスを指定して音声合成を実行:
python sample_qwen3_tts.py <voice_name>
<voice_name>には、listコマンドで確認できるボイスの名前を指定します。
コマンドラインでの具体的な使用例
1. デフォルトのボイスで音声合成を実行
sample_qwen3_tts.py を引数なしで実行すると、プログラム内で定義されているデフォルトのボイス (Ono_Anna) を使用して音声が生成されます。
python sample_qwen3_tts.py
実行結果の説明:
カレントディレクトリに sample_qwen3.wav ファイルが生成されます。このWAVファイルには、「こんにちは。これは Qwen3 TTS を使った音声合成のサンプルです。ニューラルネットワークを使って、文章から音声を生成しています。」というテキストが Ono_Anna の声で読み上げられた音声が保存されます。ターミナルには sample_qwen3.wav を作成しました。 というメッセージが表示されます。
2. 利用可能なボイスの一覧を表示
list 引数を使って実行すると、tktts_qwen3 ライブラリで利用可能なすべてのボイスの名前が表示されます。
python sample_qwen3_tts.py list
実行結果の説明: 利用可能なボイスの名前が一覧でターミナルに出力されます。出力例は以下のようになります(実際の出力はインストールされているライブラリのバージョンや利用可能なモデルによって異なります)。
Available voices:
- Ono_Anna
- Serena
- Hiroki
- [その他のボイス名...]
3. 特定のボイス (例: Serena) を指定して音声合成を実行
利用可能なボイスの中から Serena を指定して音声合成を実行します。
python sample_qwen3_tts.py Serena
実行結果の説明:
カレントディレクトリに sample_qwen3.wav ファイルが生成されます。このWAVファイルには、同じテキストが Serena の声で読み上げられた音声が保存されます。ターミナルには sample_qwen3.wav を作成しました。 というメッセージが表示されます。