音声フォーマットの使用
IBM Watson® Text to Speech サービスは、いくつかの一般的な音声フォーマット (または MIME タイプ) で合成音声を返すことができます。 サポートされるすべてのフォーマットについては、サポートされる音声フォーマットを参照してください。
このサービスを最大限に活用するには、サービスから返される音声のサンプリング・レートと、必要に応じて別のレートを指定する方法を理解する必要があります。 詳しくは、サンプリング・レートを参照してください。 どのフォーマットでも、サービスから返される音声は、常に単一チャネル音声です。
サンプリング・レート
サンプリング・レート (またはサンプリング頻度) とは、音声において 1 秒当たりに生成されるサンプル数のことです。 サンプリング・レートはヘルツ (Hz) またはキロヘルツ (kHz) で測定されます。 例えば 1 秒あたり 16,000 サンプルのレートは 16,000 Hz (または 16 kHz) に相当します。
このサービスは、その内部では常に 22,050 Hz のサンプリング・レートで音声を合成します。 多くのフォーマットでは、このサービスは音声を返すときもこのサンプリング・レートを使用します。 その他のフォーマットでは、このサービスは別のサンプリング・レートで音声を返します。
ほとんどのフォーマットで、別のサンプリング・レートを音声に指定できます。 audio/alaw
、audio/l16
、およびaudio/mulaw
フォーマットの場合は、サンプリング・レートを指定する必要があります。 サンプリング・レートを指定するには、音声フォーマットの指定に rate={integer}
パラメーターを含めます。 詳しくは、音声フォーマットの指定を参照してください。
サンプリング・レートを指定すると、このサービスは音声を返す前に、音声を 22,050 Hz から指定レートに再度サンプリングします。 指定するサンプリング・レートは、8 kHz から 192 kHz までの範囲の値でなければなりません。 一部の音声フォーマットでは、レートが特定の値に制限されます。フォーマットの説明にこの制限が示されています。
サンプリング・レートの決定
このサービスから返される音声のサンプリング・レートを調べる最も確実な方法は、音声ストリーム自体から情報を抽出することです。 レートを調べるには、単純なテキスト (「hello world」など) を使って /v1/synthesize
メソッドを呼び出し、使用する予定のフォーマットとコーデックを指定します。 次に、音声ストリームをファイルに保存し、それをオーディオ・プレイヤー (音声ファイルの再生にリストされているものなど)
で開けば、サンプリング・レートを入手できます。
サポートされている音声フォーマット
表 1 に、要求できる合成音声の音声フォーマットのリストがあります。 デフォルトでは、このサービスはOpusコーデック(audio/ogg;codecs=opus
)のOgg形式の音声を返します。
Oggオーディオ・フォーマットはサファリ・ブラウザではサポートされていません。 SafariブラウザでText to Speechサービスを使用している場合は、音声を返す別のフォーマットを指定する必要があります。 詳しくは、音声フォーマットの指定を参照してください。
このサービスは、各フォーマットについて以下の情報を提供します。
- デフォルトのサンプリング・レート は、代替レートを指定しない場合の、示されたフォーマットでの音声サンプリング・レートを示します。
- 必須パラメーター は、返される音声のサンプリング・レートを指定する必要があるフォーマットを示します。
- オプション・パラメーター は、返される音声のサンプリング・レートまたはその他の特性をオプションで指定できるフォーマットを示します。
- パラメーターを受け入れるフォーマットの*「音声フォーマット」
codecs
列に示されているように、フォーマット指定のパラメーターはすべて;
(セミコロン) で区切ります。 それぞれのフォーマットについて詳しくは、表の後に続くセクションを参照してください。
音声フォーマット | デフォルトのサンプリング・レート | 必須パラメーター | オプション・パラメーター |
---|---|---|---|
audio/alaw | なし | rate={integer} |
なし |
audio/basic | 8000 Hz | なし | なし |
audio/flac | 22,050 Hz | なし | rate={integer} |
audio/l16 | なし | rate={integer} |
endianness=big-endian endianness=little-endian |
audio/mp3 audio/mpeg |
22,050 Hz | なし | rate={integer} |
audio/mulaw | なし | rate={integer} |
なし |
audio/ogg audio/ogg;codecs=vorbis |
22,050 Hz | なし | rate={integer} |
audio/ogg;codecs=opus | 48,000 Hz | なし | rate={integer} |
audio/wav | 22,050 Hz | なし | rate={integer} |
audio/webm audio/webm;codecs=opus |
48,000 Hz | なし | なし |
audio/webm;codecs=vorbis | 22,050 Hz | なし | rate={integer} |
audio/alaw フォーマット
A-law (audio/alaw
) は、audio/basic
フォーマットおよびaudio/mulaw
フォーマットに類似した u-law (または mu-law) データを使用してエンコードされた単一チャネルの非可逆音声フォーマットです。ただし、A-law アルゴリズムは異なるシグナル特性を生成します。 このフォーマットでサンプリング・レートを指定する必要があります。 例えば、8
kHz でサンプリングされた音声の場合はaudio/alaw;rate=8000
を指定します。
返される音声のストリーミングの性質により、生成される A-law 音声はすべての音声プレイヤーで機能しない可能性があります。 具体的には、音声の長さに関係なく、音声ストリームのヘッダーの属性 numSamples
が 0
に設定されます。
audio/basic フォーマット
基本音声 は、サンプリング・レート 8 kHz で 8 ビットの u-law (または mu-law) データを使用してエンコードされた単一チャネルの非可逆音声フォーマットです。 このフォーマットが最低限の水準のメディア・タイプになります。 このフォーマットの音声のサンプリング・レートは常に 8 kHz です。
詳しくは、以下を参照してください
- インターネット技術タスクフォース(IETF)コメント要求(RFC)2046
- iana.org/assignments/media-types/audio/basic
audio/flac フォーマット
FLAC (Free Lossless Audio Codec) (.flac
) は、無損失圧縮音声コーディング・フォーマットです。 オプションで、デフォルトの 22,050 Hz 以外のサンプリング・レートを指定できます。
audio/l16 フォーマット
16 ビットのリニア PCM (Pulse-Code Modulation) は、非圧縮音声データ・フォーマット (多くの場合は .raw
または .pcm
) です。 この音声フォーマットでは、サンプリング・レートを指定する必要があります。 例えば、16 kHz で音声をサンプリングする場合は audio/l16;rate=16000
を指定します。
オプションで、endianness
パラメーターを使用して音声のエンディアンネスを指定できます。 エンディアンネスは、基盤となるコンピューター・アーキテクチャーによるデータ・バイトの配列を示します。
- ビッグ・エンディアン (
endianness=big-endian
) は、最上位ビットを基準としてデータを配列します。 - リトル・エンディアン (
endianness=little-endian
) は、最下位ビットを基準としてデータを配列します。
例えば、16 kHz でサンプリングし、ビッグ・エンディアンの順序で返される音声を取得するには、audio/l16;rate=16000;endianness=big-endian
と指定します。 エンディアンネスを省略した場合、デフォルトでリトル・エンディアンです。 (エンディアンネスの指定が問題となるのは、ヘッダーが組み込まれない audio/l16
フォーマットの場合のみです。 エンディアンネスは、他のフォーマットでは関係ありません。)
詳しくはIETF Request for Comment(RFC)2586を参照のこと。
audio/mp3 フォーマットと audio/mpeg フォーマット
MP3 または Motion Picture Experts Group (MPEG) は、非可逆データ圧縮フォーマットです (MP3 と MPEG は同じフォーマットを意味します) 。 オプションで、デフォルトの 22,050 Hz 以外のサンプリング・レートを指定できます。
audio/mulaw フォーマット
8 ビットの mu-law (または u-law) 音声 は、8 ビット mu-law データを使用してエンコードされた単一チャネルの非可逆音声フォーマットです。 この音声フォーマットでは、サンプリング・レートを指定する必要があります。 例えば、16 kHz で音声をサンプリングする場合は audio/mulaw;rate=16000
を指定します。
audio/ogg フォーマット
Ogg フォーマット (.ogg
) は、無料で公開されているコンテナー・フォーマットです (Xiph.org Foundation が管理しています)。 以下のいずれかのコーデックを使用して圧縮された音声ストリームを要求するフォーマットを使用して codecs
パラメーターを指定できます。
-
Opus コーデック (
audio/ogg;codecs=opus
を指定)。 オプションで、デフォルトの 48,000 Hz 以外のサンプリング・レートを指定できます。 有効なサンプリング・レートの値は、48000
、24000
、16000
、12000
、8000
のみです。 これらの以外の値を指定すると、このサービスからエラーが返されます。現在、このサービスには制約があり、有効なサンプリング・レートが無視されます。 このサービスは、常に 48 kHz のサンプリング・レートで音声を返します。
-
Vorbis コーデック (
audio/ogg;codecs=vorbis
または単にaudio/ogg
を指定)。 オプションで、デフォルトの 22,050 Hz 以外のサンプリング・レートを指定できます。
どちらのコーデックも無料で公開されている非可逆音声圧縮フォーマットです。 Opus が推奨コーデックですが、 コーデックを省略した場合は、Ogg の仕様に従い、Vorbis フォーマットの音声が返されます。 音声フォーマットをすべて省略した場合、サービスは、 Opus コーデックを使用した Ogg フォーマットの音声をデフォルトで返します。
詳しくは、以下を参照してください
audio/wav フォーマット
Waveform Audio ファイル・フォーマット (WAV) (.wav
) は、 非圧縮音声ビット・ストリームによく使用される標準的なコンテナー・フォーマットですが、 圧縮音声も入れることができます。 オプションで、デフォルトの 22,050 Hz 以外のサンプリング・レートを指定できます。
返される音声がストリーミングの性質を持つため、オーディオ・プレイヤーによっては、生成された WAV 音声を再生できないことがあります。 具体的には、音声の長さに関係なく、音声ストリームのヘッダーの属性 numSamples
が 0
に設定されます。
audio/webm フォーマット
Web メディア (WebM) (.webm
) は、オープンなメディア・ファイル・フォーマットです。 以下のいずれかのコーデックを使用して圧縮された音声ストリームを要求するフォーマットを使用して codecs
パラメーターを指定できます。
- Opus コーデック (
audio/webm;codecs=opus
または単にaudio/webm
を指定)。 このフォーマットの音声のサンプリング・レートは常に 48 kHz です。 - Vorbis コーデック (
audio/webm;codecs=vorbis
を指定)。 オプションで、デフォルトの 22,050 Hz 以外のサンプリング・レートを指定できます。
どちらのコーデックも無料で公開されている非可逆音声圧縮フォーマットです。 推奨されるコーデックは Opus です。
詳しくは、以下を参照してください
音声フォーマットの指定
デフォルトでは、サービスは audio/ogg;codecs=opus
のフォーマットの音声を返します。 インターフェースとして HTTP または WebSocket のいずれかを使用して別の音声フォーマットを指定できます。
- HTTP の
GET
およびPOST /v1/synthesize
メソッドでは、Accept
要求ヘッダーまたはaccept
照会パラメーターを使用してフォーマットを指定できます。-
Accept
要求ヘッダーを使用する場合は、次の例に示すように、フォーマットおよび追加のパラメーターを指定します。 この例では、audio/l16
フォーマットと、16,000 Hz のサンプリング・レートを指定しています。audio/l16;rate=16000
-
accept
照会パラメーターを使用する場合は、次の例に示すように、フォーマットおよび追加のパラメーターを URL エンコードする必要があります。 この例では、前の例と同じフォーマットとサンプリング・レートを指定しています。audio%2Fl16%3Brate%3D16000
-
- WebSocket
/v1/synthesize
メソッドでは、合成を開始するために渡すテキスト・メッセージのaccept
必須パラメーターを使用して、フォーマットを指定する必要があります。 デフォルトのフォーマットの音声を受け取るには、パラメーターに値*/*
を指定します。 詳しくは、入力テキストを送信するを参照してください。
音声ファイルの再生
サービスで生成された音声ファイルを再生するには、以下のいずれかのツールを使用します。
- Google Chrome™、Firefox ®、または Microsoft® Internet Explorer® などの Web ブラウザー
- Audacity® audacityteam.org)やFFmpeg ffmpeg.org)などのオーディオプレーヤー