音声合成サービスは、文中の各単語について、音声ストリーム上の時点を示すタイムスタンプを生成します。音声合成のタイムスタンプ機能は、各単語の音素境界検出とも呼ばれます。タイムスタンプは、バーチャルスピーカーや動画の字幕に使用できます。
重要
この機能は、単語ごとの音素境界検出をサポートするスピーカーでのみ使用できます。
リクエストパラメーター
タイムスタンプ機能を有効にするには、クライアントでリクエストを開始するときに、リクエストパラメーター enable_subtitle を true に設定します。
Java 用 SDK を使用しているとします。次の構成を使用できます。
// 送信するテキストの対応するタイムスタンプを返すためにタイムスタンプ機能を有効にするかどうかを指定します。デフォルトでは、この機能は無効になっています。
synthesizer.addCustomedParam("enable_subtitle", true);サーバー応答
リクエストで enable_subtitle パラメーターを true に設定すると、サーバーは、送信されたテキストに対応するタイムスタンプを含む MetaInfo イベントを返します。
パラメーター | タイプ | 説明 |
|---|---|---|
subtitles | リスト | タイムスタンプに関する情報。 |
次の表は、subtitles に含まれるパラメーターについて説明しています。
パラメーター | タイプ | 説明 |
|---|---|---|
text | 文字列 | 送信されたテキスト内の単語。 |
begin_time | 整数 | 合成された音声データ内の単語の開始タイムスタンプ(ミリ秒)。 |
end_time | 整数 | 合成された音声データ内の単語の終了タイムスタンプ(ミリ秒)。 |
出力例
{
"header": {
"message_id": "05450bf69c53413f8d88aed1ee60****",
"task_id": "640bc797bb684bd6960185651307****",
"namespace": "SpeechSynthesizer",
"name": "MetaInfo",
"status": 20000000,
"status_message": "GATEWAY|SUCCESS|Success."
},
"payload": {
"subtitles": [
{
"text": "xx",
"begin_time": 130,
"end_time": 260
},
{
"text": "xx",
"begin_time": 260,
"end_time": 370
}
]
}
}注記
音声合成サービスは、元のテキストの読み方に基づいて字幕を返します。そのため、タイムスタンプ機能によって生成された動画字幕を画面上の字幕として使用することはできません。代わりに、元のテキストを使用する必要があります。
この機能を使用して動画字幕を生成する場合、返された応答に基づいて各文の開始タイムスタンプと終了タイムスタンプを取得できます。