Qwen3-TTS-VD-Flash と Qwen3-TTS-VC-Flash のリリース:制御可能な音声デザインと高速多言語音声クローン

TL;DR

Qwen は新たに 2 つのテキスト音声合成モデルを発表しました—自然言語駆動の音声デザイン用 Qwen3‑TTS‑VD‑Flash と、3 秒で多言語音声クローンを実現する Qwen3‑TTS‑VC‑Flash—どちらも Qwen API で利用可能で、制御性、表現力が高く、主要な競合他社よりも単語エラー率が低くなっています。

新モデルの概要

Qwen3‑TTS‑VD‑Flash(音声デザイン)

  • Purpose: ユーザーが音響属性、人格、感情、話し方のスタイルを自然言語で記述することでカスタム音声プロファイルを作成できるようにします。参照音声を提供したり、固定カタログから選択したりする必要はありません。
  • Control Granularity: 音色、韻律、速度、ピッチ、感情トーンに対する細かい指示をサポートし、何を言うか から どのように言うか までの全パイプラインをカバーします。
  • Benchmark Performance: InstructTTS‑Eval スイートにおいて、Qwen3‑TTS‑VD‑Flash は GPT‑4o‑mini‑tts と Mimo‑audio‑7b‑instruct を全体的に上回り、ロールプレイシナリオでは Gemini‑2.5‑pro‑preview‑tts を超えています。
  • Expressiveness & Robustness: 人間らしい音声を生成し、意味的手がかりに合わせてトーンとリズムを自動的に適応させ、ピンインや特殊記号、稀な文字などの複雑または非標準テキストも確実に解析します。

Qwen3‑TTS‑VC‑Flash(音声クローン)

  • Purpose: 話者の声を約 3 秒で高速にクローンし、クローンされた音色を用いて中国語、英語、ドイツ語、イタリア語、ポルトガル語、スペイン語、日本語、韓国語、フランス語、ロシア語の 10 言語で音声を合成できます。
  • Multilingual Accuracy: MiniMax TTS 多言語テストセットで最も低い平均単語エラー率(WER)を達成し、すべてのサポート言語で MiniMax、ElevenLabs、GPT‑4o‑Audio‑Preview を上回ります。
  • Robust Text Handling: 複雑なスクリプト、句読点、実環境の音声入力を劣化させずに処理し、話者のアイデンティティを保持しながら正確な内容を生成します。
  • Cross‑Species Experimentation: 非人間の発声(例:ヤギの鳴き声)をクローンできることを示し、極端な音色柔軟性の概念実証となります。

主な技術的能力

制御可能な生成

  • ユーザーは「中年男性、力強いバリトン、超エネルギッシュなインフォマーシャル音声」などの自然言語プロンプトを出すと、記述に合致した音声が生成されます。
  • ロールプレイの例として、邪悪な魔女や企業のプロジェクトマネージャーなど、個別のペルソナに合わせたピッチ、速度、音量、感情の流れが提供されます。

高い表現力

  • 両モデルは意味的内容に基づいて韻律を動的に調整し、手動のタイミング指示なしで鮮やかで文脈に応じた表現を提供します。
  • サンプル出力は、悲しげで息遣いのあるトーンから自信に満ちた断定的な話し方へと、単一の発話内で微妙な感情変化を示します。

複雑な入力へのロバスト性

  • モデルはピンイン注釈、稀な文字、混合言語の文を正しく読み取り、可聴性と自然さを維持します。
  • 実環境の音声(例:歴史的な中国語テキスト、多言語対話)も失敗せずに処理され、強力なパーシングパイプラインを示します。

実用的な使用方法

API を使用した音声デザイン(Python 例)

import requests, base64, os
api_key = os.getenv("DASHSCOPE_API_KEY")
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "model": "qwen-voice-design",
    "input": {
        "action": "create",
        "target_model": "qwen3-tts-vd-realtime-2025-12-16",
        "voice_prompt": "A composed middle‑aged male announcer with a deep, rich, magnetic voice, steady speed, clear articulation.",
        "preview_text": "Dear listeners, welcome to the evening news.",
        "preferred_name": "announcer",
        "language": "en"
    },
    "parameters": {"sample_rate": 24000, "response_format": "wav"}
}
url = "https://dashscope-intl.aliyuncs.com/api/v1/services/audio/tts/customization"
resp = requests.post(url, headers=headers, json=payload, timeout=60)
if resp.status_code == 200:
    out = resp.json()["output"]
    voice_name = out["voice"]
    audio = base64.b64decode(out["preview_audio"]["data"])
    with open(f"{voice_name}_preview.wav", "wb") as f:
        f.write(audio)
    print(f"Created voice {voice_name}")
else:
    print("Error", resp.status_code, resp.text)

このスニペットはカスタム音声プロファイルを作成し、プレビュー用の WAV ファイルを保存します。

API を使用した音声クローン(Python 例)

import dashscope, base64, pathlib, os
from dashscope.audio.qwen_tts_realtime import QwenTtsRealtime, QwenTtsRealtimeCallback, AudioFormat

def create_voice(file_path):
    api_key = os.getenv("DASHSCOPE_API_KEY")
    data_uri = "data:audio/mpeg;base64," + base64.b64encode(pathlib.Path(file_path).read_bytes()).decode()
    payload = {
        "model": "qwen-voice-enrollment",
        "input": {
            "action": "create",
            "target_model": "qwen3-tts-vc-realtime-2025-11-27",
            "preferred_name": "guanyu",
            "audio": {"data": data_uri}
        }
    }
    headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
    resp = requests.post("https://dashscope-intl.aliyuncs.com/api/v1/services/audio/tts/customization", json=payload, headers=headers)
    return resp.json()["output"]["voice"]

class PrintCallback(QwenTtsRealtimeCallback):
    def on_event(self, response):
        if response.get('type') == 'response.audio.delta':
            audio = base64.b64decode(response['delta'])
            # stream or save audio here

voice = create_voice("voice.mp3")
callback = PrintCallback()
tts = QwenTtsRealtime(model="qwen3-tts-vc-realtime-2025-11-27", callback=callback,
                       url="wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime")
tts.connect()
tts.update_session(voice=voice, response_format=AudioFormat.PCM_24000HZ_MONO_16BIT, mode='server_commit')
for chunk in ["Right? I really like this kind of supermarket,", "especially during the New Year."]:
    tts.append_text(chunk)
    time.sleep(0.1)
tts.finish()
callback.wait_for_finished()

この例は 3 秒の音声サンプルを登録し、リアルタイムで合成された多言語テキストをストリーミングする方法を示しています。

TTS 業界への影響

  • Shift from Fixed Voice Sets to Dynamic Voice Design: 自然言語での指定を可能にすることで、Qwen3‑TTS‑VD‑Flash は事前録音された音声ライブラリのボトルネックを取り除き、ブランド固有やキャラクター主導の音声の迅速なプロトタイピングを実現します。
  • Multilingual Cloning at Production Speed: 3 秒のクローン時間と 10 言語での低 WER により、Qwen3‑TTS‑VC‑Flash はローカライズされたバーチャルアシスタント、吹き替え、クロスランゲージコンテンツ作成などのグローバルな用途に適しています。
  • Competitive Edge: GPT‑4o‑mini‑tts、Gemini‑2.5‑pro‑preview‑tts、MiniMax、ElevenLabs に対するベンチマークでの優位性は、Qwen のアーキテクチャ(大規模マルチモーダルトランスフォーマーに音響制御ヘッドを微調整したものと推測される)が新たな性能基準を設定していることを示しています。
  • Research Opportunities: Hugging Face と ModelScope のオープンソースデモと提供された引用情報により、制御可能な TTS、多言語音声転送、ノイズ入力へのロバスト性の学術的評価が促進されます。

はじめ方

  1. Obtain an API key: Alibaba Cloud Model Studio から API キーを取得します(シンガポールまたは北京向けのリージョン固有キー)。
  2. Install dependencies: pip install requests dashscope pyaudio(OS 固有の portaudio パッケージも必要)。
  3. Choose a model: 音声デザインには qwen3-tts-vd-realtime-2025-12-16、クローンには qwen3-tts-vc-realtime-2025-11-27 を選択します。
  4. 上記のコードスニペットに従って音声プロファイルを作成または話者をクローンし、REST または WebSocket エンドポイントでテキストを合成します。

引用

@misc{qwen3_tts_202512,
  author = {Qwen Team, Alibaba},
  title = {Qwen3-TTS Steps Up: Voice Cloning and Voice Design!},
  year = {2025},
  url = {https://qwen.ai/blog?id=qwen3-tts-vc-voicedesign},
  urldate = {2025-12-23}
}

すべての技術的詳細は 2025 年 12 月 23 日付の Qwen ブログ記事から直接引用しています。追加の主張や数値は導入していません。

Sources