音声合成サービスは、WebSocket 接続を介して入力テキストをバイナリ音声データに変換します。
特徴
PCM、WAV、MP3 の出力フォーマットをサポートしています。
話速、ピッチ、音量の設定をサポートしています。
リクエストごとに最大 300 文字の合成をサポートしています。漢字、英字、句読点、または単語間のスペースは 1 文字としてカウントされます。300 文字を超えるコンテンツは切り捨てられます。
入力テキストは UTF-8 でエンコードする必要があります。
タイムスタンプのサポート:このサービスは、音声内の各漢字または英単語の位置を返すことができます。タイムスタンプを使用して、デジタルヒューマンの口パク同期や動画の字幕を作成できます。詳細については、「音声合成タイムスタンプ機能の概要」をご参照ください。
エンドポイント
アクセスタイプ | 説明 | URL |
インターネットアクセス | すべてのサーバーはインターネット経由でサービスにアクセスできます。SDK はデフォルトでこの URL を使用します。 |
|
インタラクションフロー

上の図は WebSocket のインタラクションフローを示しています。RESTful API のインタラクションフローについては、「RESTful API」をご参照ください。
音声ストリームに加えて、各サーバー応答のヘッダーには `task_id` パラメーターが含まれています。このパラメーターはリクエストを一意に識別します。
音声ストリームをリアルタイムで再生するには、ffmpeg、Python の pyaudio、Java の AudioFormat、JavaScript の MediaSource など、ストリーミング再生をサポートするプレーヤーを使用してください。
認証
クライアントは、サーバーへの WebSocket 接続を確立する際に、認証にトークンを使用します。
合成の開始
クライアントは音声合成リクエストを送信し、リクエストパラメーターを設定します。次の表にパラメーターを示します。
パラメーター
タイプ
必須
説明
appkey
String
はい
コンソールで作成されたプロジェクトの appkey。
text
String
はい
合成するテキスト。テキストは UTF-8 でエンコードする必要があり、300 文字を超えることはできません。英単語はスペースで区切ってください。
説明複数の感情をサポートする音声のみが <emotion> タグを使用できます。そうでない場合、リクエストはエラー「Illegal ssml text」を返します。
voice
String
いいえ
音声。デフォルト:
xiaoyun。format
String
いいえ
音声フォーマット。有効値:.pcm、.wav、.mp3。デフォルト:
pcm。sample_rate
Integer
いいえ
音声サンプルレート。デフォルト:16000 Hz。
volume
Integer
いいえ
音量。有効値:0~100。デフォルト:50。
speech_rate
Integer
いいえ
話速。有効値:-500~500。デフォルト:0。
値 [-500, 0, 500] は、速度倍率 [0.5, 1.0, 2.0] に対応します。
-500 は、デフォルトの話速の 0.5 倍を指定します。
0 は、デフォルトの話速を指定します。デフォルトのレートは音声によって異なり、1 秒あたり約 4 漢字です。
500 は、デフォルトの話速の 2 倍を指定します。
次の数式を使用します:
0.8 倍速:(1-1/0.8)/0.002 = -125
1.2 倍速:(1-1/1.2)/0.001 = 166
説明速度倍率が 1 未満の場合は、係数 0.002 を使用します。
速度倍率が 1 を超える場合は、係数 0.001 を使用します。
アルゴリズムは結果を近似値に丸めます。
pitch_rate
Integer
いいえ
ピッチ。有効値:-500~500。デフォルト:0。
enable_subtitle
Boolean
いいえ
文字レベルのタイムスタンプを有効にするかどうかを指定します。詳細については、「音声合成タイムスタンプ機能の概要」をご参照ください。
合成された音声の受信
サーバーは合成された音声をバイナリストリームとして返します。SDK を使用して受信し、処理してください。
合成の完了
合成が完了すると、サーバーは次の例に示すように `SynthesisCompleted` イベントを送信します。
{ "header": { "message_id": "05450bf69c53413f8d88aed1ee60****", "task_id": "640bc797bb684bd6960185651307****", "namespace": "SpeechSynthesizer", "name": "SynthesisCompleted", "status": 20000000, "status_message": "GATEWAY|SUCCESS|Success." } }説明このサンプルでは、合成された音声をファイルに保存します。再生レイテンシーを低減するには、ストリーミング再生を使用して、音声が到着するたびに再生してください。
合成失敗の処理
無効なパラメーターまたはその他のエラーにより合成が失敗した場合、クライアントは次の例に示すように `TaskFailed` イベントを受信します。イベントが受信された後、基盤となる接続は閉じられます。
{ "header":{ "namespace":"Default", "name":"TaskFailed", "status":41020001, "message_id":"62c126f7d9b340deb82b5b7eaca0****", "task_id":"4552df26d1f547aab9a2c4a94678****", "status_text":"TTS:TtsClientError:[tts]Engine return error code: 418" } }
音声
名前 | voice パラメーターの値 | タイプ | シナリオ | 対応言語 | 対応サンプリングレート (Hz) | 各文字または単語の音素境界検出 | 備考 |
Xiaoyun | Xiaoyun | 標準女性音声 | すべてのシナリオ | 中国語またはバイリンガル (中国語と英語) | 8K/16K | いいえ | なし |
Xiaogang | Xiaogang | 標準男性音声 | すべてのシナリオ | 中国語またはバイリンガル (中国語と英語) | 8K/16K | いいえ | なし |
Ruoxi | Ruoxi | 優しい女性音声 | すべてのシナリオ | 中国語またはバイリンガル (中国語と英語) | 8K/16K/24K | いいえ | なし |
Siqi | Siqi | 優しい女性音声 | すべてのシナリオ | 中国語またはバイリンガル (中国語と英語) | 8K/16K/24K | はい | なし |
Sijia | Sijia | 標準女性音声 | すべてのシナリオ | 中国語またはバイリンガル (中国語と英語) | 8K/16K/24K | いいえ | なし |
Sicheng | Sicheng | 標準男性音声 | すべてのシナリオ | 中国語またはバイリンガル (中国語と英語) | 8K/16K/24K | はい | なし |
Aiqi | Aiqi | 優しい女性音声 | すべてのシナリオ | 中国語またはバイリンガル (中国語と英語) | 8K/16K | はい | なし |
Aijia | Aijia | 標準女性音声 | すべてのシナリオ | 中国語またはバイリンガル (中国語と英語) | 8K/16K | はい | なし |
Aicheng | Aicheng | 標準男性音声 | すべてのシナリオ | 中国語またはバイリンガル (中国語と英語) | 8K/16K | はい | なし |
Aida | Aida | 標準男性音声 | すべてのシナリオ | 中国語またはバイリンガル (中国語と英語) | 8K/16K | はい | なし |
Ning'er | Ninger | 標準女性音声 | すべてのシナリオ | 中国語のみ | 8K/16K/24K | いいえ | なし |
Ruilin | Ruilin | 標準女性音声 | すべてのシナリオ | 中国語のみ | 8K/16K/24K | いいえ | なし |
Siyue | Siyue | 優しい女性音声 | カスタマーサービス | 中国語またはバイリンガル (中国語と英語) | 8K/16K/24K | はい | なし |
Aiya | Aiya | 厳しい女性音声 | カスタマーサービス | 中国語またはバイリンガル (中国語と英語) | 8K/16K | はい | なし |
Aixia | Aixia | 愛想の良い女性音声 | カスタマーサービス | 中国語またはバイリンガル (中国語と英語) | 8K/16K | はい | なし |
Aimei | Aimei | 甘い女性音声 | カスタマーサービス | 中国語またはバイリンガル (中国語と英語) | 8K/16K | はい | なし |
Aiyu | Aiyu | 自然な女性音声 | カスタマーサービス | 中国語またはバイリンガル (中国語と英語) | 8K/16K | はい | なし |
Aiyue | Aiyue | 優しい女性音声 | カスタマーサービス | 中国語またはバイリンガル (中国語と英語) | 8K/16K | はい | なし |
Aijing | Aijing | 厳しい女性音声 | カスタマーサービス | 中国語またはバイリンガル (中国語と英語) | 8K/16K | はい | なし |
Xiaomei | Xiaomei | 甘い女性音声 | カスタマーサービス | 中国語またはバイリンガル (中国語と英語) | 8K/16K/24K | いいえ | なし |
Aina | Aina | 浙江なまりの女性音声 | カスタマーサービス | 中国語のみ | 8K/16K | はい | なし |
Yina | Yina | 浙江なまりの女性音声 | カスタマーサービス | 中国語のみ | 8K/16K/24K | いいえ | なし |
Sijing | Sijing | 厳しい女性音声 | カスタマーサービス | 中国語のみ | 8K/16K/24K | はい | なし |
Sitong | Sitong | 子供の声 | 子供の声を必要とするシナリオ | 中国語のみ | 8K/16K/24K | いいえ | なし |
Xiaobei | Xiaobei | 少女の声 | 子供の声を必要とするシナリオ | 中国語のみ | 8K/16K/24K | はい | なし |
Aitong | Aitong | 子供の声 | 子供の声を必要とするシナリオ | 中国語のみ | 8K/16K | はい | なし |
Aiwei | Aiwei | 少女の声 | 子供の声を必要とするシナリオ | 中国語のみ | 8K/16K | はい | なし |
Aibao | Aibao | 少女の声 | 子供の声を必要とするシナリオ | 中国語のみ | 8K/16K | はい | なし |
Harry | Harry | イギリスなまりの男性音声 | 英語のみ | 英語のみ | 8K/16K | いいえ | なし |
Abby | Abby | アメリカなまりの女性音声 | 英語のみ | 英語のみ | 8K/16K | いいえ | なし |
Andy | Andy | アメリカなまりの男性音声 | 英語のみ | 英語のみ | 8K/16K | いいえ | なし |
Eric | Eric | イギリスなまりの男性音声 | 英語のみ | 英語のみ | 8K/16K | いいえ | なし |
Emily | Emily | イギリスなまりの女性音声 | 英語のみ | 英語のみ | 8K/16K | いいえ | なし |
Luna | Luna | イギリスなまりの女性音声 | 英語のみ | 英語のみ | 8K/16K | いいえ | なし |
Luca | Luca | イギリスなまりの男性音声 | 英語のみ | 英語のみ | 8K/16K | いいえ | なし |
Wendy | Wendy | イギリスなまりの女性音声 | 英語のみ | 英語のみ | 8K/16K/24K | いいえ | なし |
William | William | イギリスなまりの男性音声 | 英語のみ | 英語のみ | 8K/16K/24K | いいえ | なし |
Olivia | Olivia | イギリスなまりの女性音声 | 英語のみ | 英語のみ | 8K/16K/24K | いいえ | なし |
Shanshan | Shanshan | 広東語を話す女性の音声 | 方言が使用されるシナリオ | 広東語 (簡体字) およびバイリンガル (広東語と英語) | 8K/16K/24K | いいえ | なし |
Xiaoyue | Xiaoyue | 四川なまりの女性音声 | 方言が使用されるシナリオ | 中国語またはバイリンガル (中国語と英語) | 8K/16K | いいえ | パブリックプレビュー中 |
Lydia | Lydia | バイリンガル (中国語と英語) の女性音声 | 英語のみ | 英語のみ | 8K/16K | いいえ | パブリックプレビュー中 |
Aishuo | Aishuo | 自然な男性音声 | カスタマーサービス | 中国語またはバイリンガル (中国語と英語) | 8K/16K | はい | パブリックプレビュー中 |
Qingqing | Qingqing | 台湾語を話す女性の音声 | 方言が使用されるシナリオ | 中国語のみ | 8K/16K | いいえ | パブリックプレビュー中 |
Cuijie | Cuijie | 東北標準中国語を話す女性の音声 | 方言が使用されるシナリオ | 中国語のみ | 8K/16K | いいえ | パブリックプレビュー中 |
Xiaoze | Xiaoze | 強い湖南なまりの男性音声 | 方言が使用されるシナリオ | 中国語のみ | 8K/16K | はい | パブリックプレビュー中 |
ステータスコード
各応答には、サービスステータスを示す `status` フィールドが含まれています。次の表にステータスコードを示します。
一般的なエラー
ステータスコード | 原因 | 解決策 |
40000001 | クライアントが認証に失敗しました。 | クライアントが使用するトークンが有効か、または期限切れでないか確認してください。 |
40000002 | リクエストが無効です。 | クライアントから送信されたリクエストが要件を満たしているか確認してください。 |
403 | トークンが期限切れであるか、リクエストに無効なパラメーターが含まれています。 | クライアントが使用するトークンが期限切れでないか確認してください。その後、パラメーター値が有効であるか確認してください。 |
40000004 | クライアントがタイムアウトしました。 | クライアントがサーバーに長時間 (10 秒など) データを送信しなかったかどうかを確認してください。 |
40000005 | リクエスト数が上限を超えています。 | 同時接続数または秒間クエリ数 (QPS) の値が上限を超えていないか確認してください。同時接続数が上限を超えている場合は、Intelligent Speech Interaction を Trial Edition から Commercial Edition にアップグレードすることを推奨します。Commercial Edition を使用している場合は、リソースを追加購入して同時実行数を増やすことを推奨します。 |
40000000 | クライアントエラーが発生しました。これはクライアントエラーのデフォルトのステータスコードです。 | エラーメッセージに基づいてエラーを解決するか、チケットを送信してください。 |
50000000 | サーバーエラーが発生しました。これはサーバーエラーのデフォルトのステータスコードです。 | ステータスコードがたまに返される場合は、無視してください。ステータスコードが複数回返される場合は、チケットを送信してください。 |
50000001 | 内部呼び出しエラーが発生しました。 | ステータスコードがたまに返される場合は、無視してください。ステータスコードが複数回返される場合は、チケットを送信してください。 |
ゲートウェイエラー
ステータスコード | 原因 | 解決策 |
40010001 | このメソッドはサポートされていません。 | SDK を使用している場合は、チケットを送信してください。 |
40010002 | この命令はサポートされていません。 | SDK を使用している場合は、チケットを送信してください。 |
40010003 | 命令のフォーマットが無効です。 | SDK を使用している場合は、チケットを送信してください。 |
40010004 | クライアントが予期せず切断されました。 | サーバーが要求されたタスクを完了する前にクライアントが切断されたかどうかを確認してください。 |
40010005 | タスクのステータスが無効です。 | タスクが現在の状態にあるときに命令がサポートされているかどうかを確認してください。 |
設定エラー
ステータスコード | 原因 | 解決策 |
40020105 | アプリケーションが存在しません。 | appkey が正しいか、またトークンと同じ Alibaba Cloud アカウントに属しているか確認してください。 |
テキスト読み上げ (TTS) サービスのエラー
ステータスコード | 原因 | 解決策 |
41020001 | 1 つ以上のパラメーターが無効です。 | 指定されたパラメーター値が有効であるか確認してください。 |
51020001 | TTS サーバーエラーが発生しました。 | ステータスコードがたまに返される場合は、無視してください。ステータスコードが複数回返される場合は、チケットを送信してください。 |