はじめに
前回は、faster-whisperによる文字起こしを実現しました。
次はText-To-Speechを実現してみます。
環境構築
今の時代、コードは生成AIに頼めばよいのですが、環境構築は頑張って自分でする必要があります。
モデルの入手
ChatGPTに聞くと、Qwen3を進められました。
まずはお試しということで、一番小さいモデルのQwen3-TTS-12Hz-0.6B-CustomVoiceを入手します。
と言っても、Qwenをインストールして音声を作ると、初回に必要なモデルをダウンロードしてくれるので、特に「モデルのインストール」という作業は必要ありません。
仮想環境を作って、PyTouchと必要なモジュールをインストール。
> python -m venv .venv
> pip install torch torchaudio
> pip install -U qwen-tts
> pip install soundfile
そして、Ono_Annaで「こんにちは」と言ってもらうためのスクリプトを動かします(このコード自体もChatGPTに作ってもらっています)
hello.py
import torch
import soundfile as sf
from qwen_tts import Qwen3TTSModel
# 使用するモデル(軽量な0.6Bモデル)
MODEL = "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice"
# GPUがない場合はCPUを使用
device = "cuda:0" if torch.cuda.is_available() else "cpu"
dtype = torch.float16 if device == "cuda:0" else torch.float32
print(f"実行デバイス: {device}")
print("モデルを読み込んでいます。初回はダウンロードに時間がかかります...")
model = Qwen3TTSModel.from_pretrained(
MODEL,
device_map=device,
dtype=dtype,
)
print("音声を生成しています...")
wavs, sr = model.generate_custom_voice(
text="こんにちは。これは、Qwen3-TTSによる日本語音声のテストです。",
language="Japanese",
speaker="Ono_Anna",
)
sf.write("hello.wav", wavs[0], sr)
print("生成完了: C:\\python\\_qwen\\hello.wav")
これで、無事に動きました。
その後
instructというプロパティを使うと「喋り方」をさらに望み通りにできるようで、モデルを1.7Bに変えるよりも良いらしいです。いろいろ試してみようと思います。
(おわり)
