TTS语音合成
音声合成 API ドキュメント
Section titled “音声合成 API ドキュメント”音声合成(Text-to-Speech, TTS)API を使うと、テキストを自然で滑らかな音声に変換できます。このAPIは OpenAI 標準に対応しているほか、通义千问 qwen-tts シリーズモデルもサポートしており、高品質な中国語・英語の音声合成サービスを提供します。
インターフェース情報
Section titled “インターフェース情報”- エンドポイント:
/v1/audio/speech - メソッド:
POST - コンテンツタイプ:
application/json - 認証: Bearer Token
Qwen-TTS シリーズモデル
Section titled “Qwen-TTS シリーズモデル”本システムは通义千问の qwen-tts シリーズモデルを完全サポートしています:
| モデル名 | 説明 | 特長 |
|---|---|---|
qwen-tts | ベーシック版 | 標準的な音質で、一般的な用途に適しています |
qwen-tts-latest | 最新版 | 音質が向上しており、より多くの音色に対応しています |
qwen-tts-2025-05-22 | 指定版 | 安定版で、本番環境に適しています |
共通音色(全バージョン対応)
Section titled “共通音色(全バージョン対応)”| 音色コード | 音色名 | 性別 | 特長 |
|---|---|---|---|
Cherry | 甘く可愛らしい女性声 | 女 | 甘く親しみやすい声で、温かみのある場面に適しています |
Serena | やさしい女性声 | 女 | 穏やかな声で、プロフェッショナルなアナウンスに適しています |
Ethan | 落ち着いた男性声 | 男 | 安定感のある声で、ビジネスシーンに適しています |
Chelsie | 活発な女性声 | 女 | 明るく元気な声で、若々しい雰囲気の場面に適しています |
上位音色(qwen-tts-latest と qwen-tts-2025-05-22 で対応)
Section titled “上位音色(qwen-tts-latest と qwen-tts-2025-05-22 で対応)”| 音色コード | 音色名 | 性別 | 特長 |
|---|---|---|---|
Dylan | 北京語 | 男 | 若々しく活力があり、ファッション系コンテンツに適しています |
Jada | 呉語 | 女 | 知的で上品な印象があり、教育系コンテンツに適しています |
Sunny | 四川語 | 女 | 明るく朗らかな声で、子ども向けコンテンツに適しています |
リクエスト形式
Section titled “リクエスト形式”基本リクエスト
Section titled “基本リクエスト”{ "model": "qwen-tts", "input": "你好,欢迎使用语音合成服务!", "voice": "Cherry"}完全なリクエストパラメータ
Section titled “完全なリクエストパラメータ”{ "model": "qwen-tts-latest", "input": "这是一段需要转换为语音的文本内容。支持中文、英文以及中英混合的文本输入。", "voice": "Serena", "speed": 1.0, "response_format": "wav"}リクエストパラメータ
Section titled “リクエストパラメータ”| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
model | string | はい | 使用するTTSモデル。OpenAI tts と qwen-tts シリーズに対応しています |
input | string | はい | 音声に変換するテキスト。最大512 Token まで |
voice | string | はい | 音声の音色。対応音色一覧を参照してください |
speed | number | いいえ | 音声速度。範囲は0.25-4.0、デフォルトは1.0 |
response_format | string | いいえ | 音声形式。現在は wav のみ対応しています |
レスポンス形式
Section titled “レスポンス形式”成功レスポンス
Section titled “成功レスポンス”API は音声ファイルの内容を直接返します。レスポンスヘッダーには以下が含まれます:
Content-Type: audio/wavContent-Disposition: attachment; filename="audio.wav"音声フォーマット仕様:
- 形式: WAV (RIFF)
- エンコーディング: 16-bit PCM
- チャンネル: モノラル (Mono)
- サンプリングレート: 24000 Hz
エラーレスポンス
Section titled “エラーレスポンス”{ "error": { "message": "错误描述", "type": "invalid_request_error", "code": "error_code" }}cURL の例
Section titled “cURL の例”基本リクエスト
Section titled “基本リクエスト”curl -X POST "https://api.4allapi.com/v1/audio/speech" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "qwen-tts", "input": "你好,这是语音合成测试", "voice": "Cherry" }' \ --output audio.wav上位音色のリクエスト
Section titled “上位音色のリクエスト”curl -X POST "https://api.4allapi.com/v1/audio/speech" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "qwen-tts-latest", "input": "欢迎使用通义千问语音合成服务,我是Jada!", "voice": "Jada", "speed": 1.2 }' \ --output audio_jada.wavJavaScript の例
Section titled “JavaScript の例”async function generateSpeech(text, voice = 'Cherry') { const response = await fetch('/v1/audio/speech', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ model: 'qwen-tts-latest', input: text, voice: voice }) });
if (response.ok) { const audioBlob = await response.blob(); const audioUrl = URL.createObjectURL(audioBlob);
// 音声を再生 const audio = new Audio(audioUrl); audio.play();
return audioUrl; } else { const error = await response.json(); throw new Error(error.error.message); }}
// 使用例generateSpeech('你好,世界!', 'Serena');Python の例
Section titled “Python の例”import requestsimport io
def generate_speech(text, voice='Cherry', model='qwen-tts-latest'): url = 'https://api.4allapi.com/v1/audio/speech' headers = { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' } data = { 'model': model, 'input': text, 'voice': voice }
response = requests.post(url, headers=headers, json=data)
if response.status_code == 200: return response.content else: raise Exception(f"API Error: {response.status_code} - {response.text}")
# 使用例audio_content = generate_speech('你好,这是Python调用示例!', 'Ethan')
# 音声ファイルを保存with open('output.wav', 'wb') as f: f.write(audio_content)Node.js の例
Section titled “Node.js の例”const fs = require('fs');const fetch = require('node-fetch');
async function generateSpeech(text, voice = 'Cherry') { try { const response = await fetch('https://api.4allapi.com/v1/audio/speech', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ model: 'qwen-tts-latest', input: text, voice: voice }) });
if (response.ok) { const buffer = await response.buffer(); fs.writeFileSync('audio.wav', buffer); console.log('音声ファイルを audio.wav として保存しました'); } else { const error = await response.json(); console.error('API エラー:', error); } } catch (error) { console.error('リクエスト失敗:', error); }}
// 使用例generateSpeech('欢迎使用Node.js语音合成!', 'Dylan');ストリーミングレスポンス(対応予定)
Section titled “ストリーミングレスポンス(対応予定)”長文の場合、ストリーミングレスポンスを使うと、最初のバイトをより早く受け取れます:
curl -X POST "https://api.4allapi.com/v1/audio/speech" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -H "X-DashScope-SSE: enable" \ -d '{ "model": "qwen-tts", "input": "这是一段较长的文本,使用流式响应可以获得更好的体验...", "voice": "Chelsie" }' \ --no-bufferテキスト制限
Section titled “テキスト制限”- 1回のリクエストでの最大テキスト長:512 Token
- 対応言語:中国語、英語、中国語と英語の混在
- 特殊文字は自動的に処理されます
リクエスト制限
Section titled “リクエスト制限”- レート制限:ご利用のサブスクリプションプランに依存します
- 同時実行制限:デフォルトで複数の並列リクエストに対応しています
- ファイルサイズ:生成される音声ファイルのサイズはテキスト長に依存します
- 最大音声長:約5分(テキスト長によって変動)
- 音声品質:24kHz, 16-bit PCM
- 出力形式:WAV
よくあるエラーコード
Section titled “よくあるエラーコード”| エラーコード | 説明 | 対処方法 |
|---|---|---|
invalid_api_key | APIキーが無効です | Authorization ヘッダーのAPIキーを確認してください |
model_not_found | モデルが存在しません | 正しい qwen-tts モデル名を使用しているか確認してください |
invalid_voice | 音色がサポートされていません | 音色パラメータが対応一覧に含まれているか確認してください |
text_too_long | テキストが長すぎます | 入力テキストを512 Token 以内に短くしてください |
quota_exceeded | クォータ不足です | アカウント残高またはリクエスト頻度制限を確認してください |
トラブルシューティング
Section titled “トラブルシューティング”- 音声ファイルが空、または破損している
- APIキーが有効か確認してください
- チャンネル設定が正しいか確認してください
- モデル名と音色パラメータを確認してください
- リクエストがタイムアウトする
- ネットワーク接続を確認してください
- テキスト長を短くしてください
- リクエストを再試行してください
- 音色が反映されない
- 使用しているモデルバージョンがその音色に対応しているか確認してください
- 音色パラメータの大文字・小文字を確認してください
料金について
Section titled “料金について”qwen-tts シリーズモデルは文字数課金です:
- 課金単位: 入力文字数に基づいて計算
- 課金方式: プリペイド方式で、アカウント残高から差し引かれます
- 料金: 管理画面の料金設定を参照してください
ベストプラクティス
Section titled “ベストプラクティス”テキストの最適化
Section titled “テキストの最適化”- 句読点: 句読点を適切に使うと、音声のリズムが改善されます
- 数字の処理: 数字は漢数字で書くことを推奨します(例:123 → 一百二十三)
- 英単語: 中国語と英語が混在する場合、英単語は中国語の発音ルールで読み上げられます
- シーンとの適合: コンテンツの種類に合わせて適切な音色を選んでください
- 一貫性: 同じアプリケーションでは、音色を統一することを推奨します
- テスト: まず各音色の効果を試してから決定することをおすすめします
パフォーマンス最適化
Section titled “パフォーマンス最適化”- キャッシュ: 繰り返し使うテキストは音声ファイルをキャッシュするとよいです
- 分割: 長文は分割して処理することをおすすめします
- 並列処理: 同時リクエスト数は適切に制御してください
v1.0.0 (2025-08-29)
Section titled “v1.0.0 (2025-08-29)”- :check_mark_button: qwen-tts シリーズモデルのサポートを追加
- :check_mark_button: 7種類の異なる音色をサポート
- :check_mark_button: OpenAI 標準API形式との互換性を追加
- :check_mark_button: ストリーミング/非ストリーミング両方のレスポンスに対応
- :check_mark_button: 完全なエラー処理メカニズムを追加
- :check_mark_button: 多言語 SDK のサンプルを追加
技術サポート
Section titled “技術サポート”使用中に問題が発生した場合は、以下をお試しください:
- 本ドキュメントの「トラブルシューティング」部分を確認する
- API レスポンス内のエラー情報を確認する
- 技術サポートチームに連絡する
注意: 本APIは OpenAI の /v1/audio/speech インターフェース仕様と完全互換であり、既存の OpenAI TTS 呼び出しをそのまま置き換えられます。
4All API フッター
Section titled “4All API フッター”4All API · 一站式AI大模型API聚合平台 | 価格 | お問い合わせ
© 2025 4All API. All rights reserved.