Qwen3 TTS Instruct Flash vs TTS-1 HD
いつ、どちらを使うべきか — ベンチマーク表ではなく、厳選された評価
qwen3-tts-instruct-flash は 100万文字あたり $11.5 対 $30、およそ 2.6 分の 1 で、二つのうち自然な言葉で声を指示できるのはこちらだけです — tts-1-hd に音声制御はありません。代償はリクエストの大きさで、600 文字 対 4096、長い原稿は分割が要ります。どちらもストリーミングします。長い文章を一度に読ませるなら tts-1-hd、演出を付けた短い台詞を安く回すなら qwen3-tts-instruct-flash。
料金
| Qwen3 TTS Instruct Flash | TTS-1 HD | Δ | |
|---|---|---|---|
| 1M文字あたり | $11.5 | $30 | 0.38× |
ビルド時のライブカタログの料金です。各モデルのページには現在の料金カードが記載されています。
位置付け — この課金単位におけるすべての7個のテキスト音声変換モデル全体の1M文字あたりの料金 (対数スケール)
機能
| Qwen3 TTS Instruct Flash | TTS-1 HD | |
|---|---|---|
| ストリーミング | あり | あり |
| SSML | undocumented | undocumented |
| 課金単位 | character | character |
仕様
| Qwen3 TTS Instruct Flash | TTS-1 HD | |
|---|---|---|
| 入力モダリティ | テキスト | テキスト |
| 出力モダリティ | 音声 | 音声 |
| リクエスト制限 | 600 characters | 4096 characters |
| ボイス | System voices published with one-line personas, among them Cherry (a sunny, positive, friendly and natural young woman), Serena, Ethan, Chelsie, Momo, Vivian, Moon, Maia, Kai, Nofish (a designer who cannot pronounce retroflex sounds), Bella, Eldric Sage, Mia, Mochi, Bellona, Vincent, Bunny, Neil, Elias, Arthur, Nini, Seren, Pip and Stella the Qwen-TTS voice list pairs each voice with the exact model ids that accept it. | alloy, ash, coral, echo, fable, onyx, nova, sage and shimmer, a smaller set than the full 13-voice TTS list, and voices are currently optimized for English. |
| 言語 | Chinese (Mandarin), English, German, Italian, Portuguese, Spanish, Japanese, Korean, French and Russian. language_type defaults to Auto for mixed-language or undetermined input, which Alibaba documents as not guaranteeing accuracy naming a single language is documented to significantly improve synthesis quality. Unlike the Qwen3-TTS-Flash series, the Instruct series lists no Chinese dialect voices (Beijing, Shanghainese, Sichuan, Nanjing, Shaanxi, Hokkien, Tianjin, Cantonese). | Generally follows the Whisper model’s language support: Afrikaans, Arabic, Armenian, Azerbaijani, Belarusian, Bosnian, Bulgarian, Catalan, Chinese, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, Galician, German, Greek, Hebrew, Hindi, Hungarian, Icelandic, Indonesian, Italian, Japanese, Kannada, Kazakh, Korean, Latvian, Lithuanian, Macedonian, Malay, Marathi, Maori, Nepali, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swahili, Swedish, Tagalog, Tamil, Thai, Turkish, Ukrainian, Urdu, Vietnamese and Welsh, despite voices being optimized for English |
| 音声コントロール |
| none |
| 制限 | HTTP non-real-time speech synthesis API the -realtime suffix marks the WebSocket sibling. Input text capped at 600 characters, multilingual mixed input allowed. Non-streaming returns an audio file URL valid for 24 hours streaming returns Base64-encoded PCM in chunks with the URL only in the final packet, played back in the official samples as 24 kHz mono 16-bit audio. Billed by input text characters, reported as usage.characters (input_tokens and output_tokens are always 0 on the Qwen3-TTS series) output audio is free. | Speech generation endpoint (v1/audio/speech) only, with Chat Completions, Responses, Realtime, Batch and Fine-tuning all listed as not supported input text is capped at 4096 characters output mp3 (default), opus, aac, flac, wav or pcm (raw 24 kHz 16-bit signed little-endian samples) realtime playback via chunked transfer encoding |
仕様は各ベンダーのドキュメントから転記されています。ベンダーが公開していない行は推測せず、省略しています。 すべての出典: Qwen3 TTS Instruct Flash · TTS-1 HD
1行で切り替え
以下のすべてのタブには両方のIDが含まれています — 変更箇所はハイライトされた2行のみです。エンドポイント、キー、リクエスト形式はすべて同じです。
from openai import OpenAI
client = OpenAI(
base_url="https://synthorai.io/v1",
api_key="sk-syn-...",
)
resp = client.audio.transcriptions.create(
model="qwen3-tts-instruct-flash",
# model="tts-1-hd", # この行をアンコメントし、上の行をコメントアウトします
file=open("meeting.mp3", "rb"),
language="en",
)
print(resp.text)import OpenAI from "openai";
import fs from "node:fs";
const client = new OpenAI({
baseURL: "https://synthorai.io/v1",
apiKey: "sk-syn-...",
});
const resp = await client.audio.transcriptions.create({
model: "qwen3-tts-instruct-flash",
// model: "tts-1-hd", // この行をアンコメントし、上の行をコメントアウトします
file: fs.createReadStream("meeting.mp3"),
});
console.log(resp.text);curl https://synthorai.io/v1/audio/transcriptions \
-H "Authorization: Bearer sk-syn-..." \
-F model="qwen3-tts-instruct-flash" \
# -F model="tts-1-hd" \ # この行をアンコメントし、上の行をコメントアウトします
-F file=@meeting.mp3package main
import (
"context"
"fmt"
"os"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://synthorai.io/v1"),
option.WithAPIKey("sk-syn-..."),
)
f, _ := os.Open("meeting.mp3")
resp, _ := client.Audio.Transcriptions.New(context.TODO(), openai.AudioTranscriptionNewParams{
Model: "qwen3-tts-instruct-flash",
// Model: "tts-1-hd", // この行をアンコメントし、上の行をコメントアウトします
File: f,
})
fmt.Println(resp.Text)
}import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.audio.transcriptions.*;
import java.nio.file.Paths;
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://synthorai.io/v1")
.apiKey("sk-syn-...")
.build();
Transcription resp = client.audio().transcriptions().create(
TranscriptionCreateParams.builder()
.model("qwen3-tts-instruct-flash")
// .model("tts-1-hd") // この行をアンコメントし、上の行をコメントアウトします
.file(Paths.get("meeting.mp3"))
.build()).asTranscription();
System.out.println(resp.text());FAQ
Qwen3 TTS Instruct Flash と TTS-1 HD ではどちらが安いですか?
1m文字あたり においては Qwen3 TTS Instruct Flash の方が安価です($11.5 対 $30、2.6× の差)。他の行では逆になる可能性があります — 上の表には完全な情報が記載されており、実際のコストは組み合わせに依存します。
2つの統合を行わずに Qwen3 TTS Instruct Flash と TTS-1 HD のA/Bテストを実施できますか?
はい。両方とも1つのAPIキーで同じOpenAI互換エンドポイントを通じて提供されます — モデル文字列を1行変更するだけで切り替えられるため、トラフィックの一部をそれぞれにルーティングし、請求額を直接比較できます。
Text-to-Speechはどのように課金されますか?
入力テキストの1文字あたりの課金となり、リクエストごとの文字数上限はスペック表に記載されています。どちらのモデルでも、長いスクリプトは複数のリクエストに分割する必要があります。