サポートされている音声フォーマット
IBM Watson® Speech to Text サービスは、さまざまなフォーマットの音声から発話を抽出できます。 このトピックの以降のセクションは、サービスの使用を最大限に活用するのに役立ちます。 音声処理に慣れていない場合は、音声の概念に関する情報について、音声の用語と特性から始めてください。
音声フォーマット
表 1 に、サービスでサポートされている音声フォーマットのまとめを示します。
- 音声フォーマットは、サポートされる各フォーマットをその
Content-Type
仕様によって識別します。 - 圧縮 は、フォーマットの圧縮サポートを示します。 圧縮をサポートしているフォーマットを使用すると、音声のサイズを縮小して、音声に渡すことができるデータの量を最大化できます。 ただし、圧縮が音声の品質に与える可能性のある影響を考慮する必要があります。 詳しくは、データ制限および圧縮を参照してください。
- Content-Type の指定は、
Content-Type
ヘッダーまたはこのヘッダーに相当するパラメーターを指定して、サービスに送信する音声のフォーマット (MIME タイプ) を指定する必要があるかどうかを示します。 詳しくは、音声フォーマットの指定を参照してください。
最後の列は、各フォーマットの追加の必須パラメーターとオプション・パラメーターを示します。 以下のセクションでは、これらのパラメーターについて詳しく説明します。
音声フォーマット | 圧縮 | Content-Type の指定 | 必須パラメーター | オプション・パラメーター |
---|---|---|---|---|
audio/alaw | 非可逆 | 必須 | rate={integer} |
なし |
audio/basic | 非可逆 | 必須 | なし | なし |
audio/flac | ロスレス | オプション | なし | なし |
audio/g729 | 非可逆 | オプション | なし | なし |
audio/l16 | なし | 必須 | rate={integer} |
channels={integer} endianness=big-endian endianness=little-endian |
audio/mp3 audio/mpeg |
非可逆 | オプション | なし | なし |
audio/mulaw | 非可逆 | 必須 | rate={integer} |
なし |
audio/ogg | 非可逆 | オプション | なし | codecs=opus codecs=vorbis |
audio/wav | なし、ロスレス、または非可逆 | オプション | なし | なし |
audio/webm | 非可逆 | オプション | なし | codecs=opus codecs=vorbis |
audio/alaw フォーマット
A-law (audio/alaw
) は、単一チャネルの非可逆音声フォーマットです。 このフォーマットで使用されるアルゴリズムは、audio/basic
フォーマットと audio/mulaw
フォーマットにより適用される u-law アルゴリズムに類似していますが、A-law アルゴリズムでは異なる信号特性が生成されます。 このフォーマットを使用する場合、サービスはフォーマット指定のための追加パラメーターを必要とします。
パラメーター | 説明 |
---|---|
rate 必須 |
音声が取り込まれたサンプリング・レートを示す整数。 例えば、8 kHz で取り込まる音声データの場合は、以下のパラメーター (
|
audio/basic フォーマット
基本音声 (audio/basic
) は、8 kHz でサンプリングされた 8 ビット u-law (または mu-law) データを使用してエンコードされた単一チャネルの非可逆音声フォーマットです。 このフォーマットは、音声のメディア・タイプを示す最低限の共通フォーマットを提供します。 このサービスでは、狭帯域モデルでのみ、audio/basic
フォーマットのファイルの使用がサポートされます。
詳しくは、Internet Engineering Task Force (IETF)Request for Comment(RFC)2046およびiana iana.org/assignments/media-types/audio/basicを参照のこと。
audio/flac フォーマット
FLAC (Free Lossless Audio Codec (FLAC)) (audio/flac
) は、ロスレス音声フォーマットです。
audio/g729 フォーマット
G.729 (audio/g729
) は、8 kHz でエンコードされたデータをサポートする非可逆音声フォーマットです。 このサービスでは G.729 Annex D のみがサポートされており、Annex J はサポートされていません。このサービスでは、狭帯域モデルでのみ、audio/g729
フォーマットのファイルの使用がサポートされます。
audio/l16 フォーマット
16 ビットのリニア PCM (Pulse-Code Modulation) (audio/l16
) は、非圧縮音声フォーマットです。 このフォーマットは未加工の PCM ファイルを渡す場合に使用します。 リニア PCM 音声は、コンテナー WAV (Waveform Audio File Format) ファイルに入れることもできます。 audio/l16
フォーマットを使用すると、サービスではフォーマットを指定するための追加の必須パラメーターとオプション・パラメーターが受け入れられます。
パラメーター | 説明 |
---|---|
rate 必須 |
音声が取り込まれたサンプリング・レートを示す整数。 例えば、16 kHz で取り込まれる音声データの場合は、以下のパラメーター (
|
channels オプション |
このサービスでは、デフォルトでは音声が単一チャネル音声として扱われます。 *音声が複数チャネルで構成されている場合は、*チャネルの数を示す整数を指定する必要があります。 例えば、16 kHz で取り込まれる 2 チャネル音声データの場合は、以下のパラメーター (
)を指定します。サービスは、最大 16 チャネルを受け入れます。 トランスコーディング時に音声が 1 チャネルにダウンミックスされます。 |
endianness オプション |
デフォルトでは、サービスは着信音声のエンディアンネスを自動的に検出します。 ただし、audio/l16 フォーマットの短い音声の場合、自動検出が失敗して接続が失われることがあります。 エンディアンネスを指定すると、自動検出が無効になります。 big-endian または little-endian を指定します。 例えば、16 kHz でリトル・エンディアン・フォーマットで取り込まれる音声データの場合は、以下のパラメーター
(
) を指定します。Request for Comment (RFC) 2045 のセクション 5.1 では、 |
詳しくは、IETFの RFC(Request for Comment)2586を参照のこと。
audio/mp3 フォーマットと audio/mpeg フォーマット
MP3 (audio/mp3
) または MPEG (Motion Picture Experts Group) (audio/mpeg
) は、非可逆音声フォーマットです。 MP33とMPEGは同じフォーマットを指す)。
audio/mulaw フォーマット
Mu-law (audio/mulaw
) は、単一チャネルの非可逆音声フォーマットです。 データのエンコードには u-law (mu-law) アルゴリズムが使用されます。 audio/basic
フォーマットは、サンプリング・レートが常に 8 kHz の同等のフォーマットです。 このフォーマットを使用する場合、サービスはフォーマット指定のための追加パラメーターを必要とします。
パラメーター | 説明 |
---|---|
rate 必須 |
音声が取り込まれたサンプリング・レートを示す整数。 例えば、8 kHz で取り込まる音声データの場合は、以下のパラメーター (
|
audio/ogg フォーマット
Ogg(audio/ogg
) は、Xiph.org財団 xiph.org/ogg)によって管理されているオープン・コンテナ・フォーマットである。 以下の非可逆コーデックを使用して圧縮された音声ストリームを使用できます。
- Opus(
audio/ogg;codecs=opus
)。詳しくは opus-codec.org をご覧ください。 - Vorbis(
audio/ogg;codecs=vorbis
)。詳細は xiph.org/vorbisを参照。
OGG Opus が推奨されるコーデックです。 これは低遅延、高音質、低サイズなので、OGG Vorbis の論理的な後継です。 インターネット技術タスクフォース(IETF)が RFC(Request for Comment)6716として標準化している。
コンテンツ・タイプからコーデックを省略すると、サービスによって入力音声からコーデックが自動的に検出されます。
audio/wav フォーマット
WAV (Waveform Audio File Format) (audio/wav
) は、非圧縮音声ストリームに対してよく使用されるコンテナーですが、圧縮音声も入れることができます。 サービスでは、任意のエンコーディングを使用した WAV 音声がサポートされています。 (FFmpeg の制約のため) サービスは最大 9 チャネルの音声を受け入れることができます。
WAV 音声を Opus コーデックに変換することでサイズを縮小する方法について詳しくは、Opus コーデックを使用する audio/ogg への変換を参照してください。
audio/webm フォーマット
ウェブ・メディア(WebM)(audio/webm
)は、WebMwebmproject.org)によって管理されているオープン・コンテナ・フォーマットである。 以下の非可逆コーデックを使用して圧縮された音声ストリームを使用できます。
- Opus(
audio/webm;codecs=opus
)。詳しくは opus-codec.org をご覧ください。 - Vorbis(
audio/webm;codecs=vorbis
)。詳細は xiph.org/vorbisを参照。
コーデックを省略すると、入力音声からコーデックが自動的に検出されます。
Chromeブラウザでマイクから音声をキャプチャし、WebMデータストリームにエンコードする方法を示すJavaScriptコードについては、jsbin.com/hedujihuqo/edit?js,consoleを参照してください。 このコードは、取り込んだ音声をサービスに送信しません。
音声フォーマットの指定
Content-Type
要求ヘッダーまたは同等のパラメーターを使用して、サービスに送信する音声のフォーマット (MIME タイプ) を指定します。 要求では常に音声フォーマットを指定できますが、これは必ずしも必須ではありません。
- ほとんどのフォーマットでは、コンテンツ・タイプの指定はオプションです。 コンテンツ・タイプを省略するか、または
application/octet-stream
を指定してサービスでフォーマットを自動検出することができます。 - その他のフォーマットの場合は、コンテンツ・タイプが必要です。 このようなフォーマットでは、サービスでのフォーマットの自動検出に必要な情報 (サンプリング・レートなど) が提供されません。
audio/alaw
、audio/basic
、audio/l16
、およびaudio/mulaw
フォーマットのコンテンツ・タイプを指定する必要があります。
Content-Type の指定を必要とするフォーマットについて詳しくは、音声フォーマットの表 1 を参照してください。 表の*「Content-Type の指定」*列は、コンテンツ・タイプを指定する必要があるかどうかを示します。
サービスの各インターフェースでコンテンツ・タイプを指定する例については、音声認識要求の実行を参照してください。 そのトピックのすべての例で、コンテンツ・タイプが指定されています。
curl
コマンドを使用して HTTP インターフェースで音声認識要求を行う場合は、Content-Type
ヘッダーを使用して音声フォーマットを指定するか、"Content-Type: application/octet-stream"
を指定するか、または "Content-Type:"
のみを指定する必要があります。 ヘッダー全体を省略すると、curl
はデフォルト値 application/x-www-form-urlencoded
を使用します。
データ制限および圧縮
このサービスは、同期 HTTP または WebSocket 要求での書き起こし用に最大 100 MB の音声データを受け入れ、非同期 HTTP 要求で 1 GB の音声データを受け入れます。 長い連続な音声ストリームまたは大きな音声ファイルを認識する場合は、これらのデータ制限を考慮して対応する必要があります。
音声認識要求で渡すことができる音声データの量を最大化する 1 つの方法は、圧縮を提供するフォーマットを使用することです。 圧縮には、非可逆とロスレスの 2 つの基本タイプがあります。 選択した音声フォーマットおよび圧縮アルゴリズムは、音声認識の正確度に直接影響を与える可能性があります。
非可逆圧縮を使用する音声フォーマットは、音声ストリームのサイズが大幅に削減されます。 しかし、音声を過度に圧縮すると、書き起こしの正確度が低下する可能性があります。 この違いを聞くことはできませんが、サービスはそのようなデータ損失に対してより敏感です。
音声の概算サイズの比較
サンプリング・レート 16 kHz、1 サンプル当たり 16 ビットで 2 時間にわたる継続的音声伝送の結果のデータ・ストリームの概算サイズを検討します。
- データが
audio/wav
フォーマットでエンコードされている場合、2 時間のストリームのサイズは 230 MB となり、サービスの 100 MB 制限を大幅に上回ります。 - データが
audio/ogg
フォーマットでエンコードされている場合、2 時間のストリームのサイズは 23 MB であり、サービスの制限を下回ります。
以下の表に、同期 HTTP 要求または WebSocket 要求で音声認識のために送信できる音声の最長時間をフォーマット別に示します。 この時間には 100 MB の制限が反映されています。 実際の値は、音声の複雑さと実際の圧縮率に応じて異なります。
音声フォーマット | 音声の最長時間 (概算) |
---|---|
audio/wav |
55 分 |
audio/flac |
1 時間 40 分 |
audio/mp3 |
3 時間 20 分 |
audio/ogg |
8 時間 40 分 |
さまざまな音声フォーマットを比較するためのテストで、IBM® は、WAV フォーマットと FLAC フォーマットが最良の単語エラー率 (WER) を提供していることを判別しました。 これらのフォーマットは、データ損失なしで音声をそのまま維持するため、書き起こしの正確度のベースラインとして使用できます。 Opus がコーディングされた Ogg フォーマットでは、ベースラインと比較して 2% WER のわずかな低下が示されました。 MP3 フォーマットでは、ベースラインと比較して WER のパフォーマンスが 10% 低下し、最悪の結果がもたらされました。
audio/ogg;codecs=opus
フォーマットと audio/webm;codecs=opus
フォーマットは一般に同等であり、サイズもほぼ同一です。 これらのフォーマットでは内部で同じコーデックが使用されます。異なるのはコンテナーのフォーマットだけです。
書き起こしの正確度の最大化
音声フォーマットと圧縮アルゴリズムを選択する際は、書き起こしの正確度を最大化するために以下の推奨事項を検討してください。
- 非圧縮であるロスレス音声フォーマットを使用します。 音声の長さが 55 分未満 (100 MB 未満) の場合は、
audio/wav
フォーマットを使用することを検討してください。 WAV フォーマットは 55 分の音声にしか対応できませんが、多くの場合、カスタマー・サポート・コールなどのほとんどの書き起こしアプリケーションには十分です。 また、非圧縮 WAV 音声は、より正確な書き起こしを生成できます。 - 非同期 HTTP インターフェースを使用します。 WAV フォーマットを使用することを選択したが、音声が 100 MB の制限を超える場合、非同期インターフェースでは最大 1 GB のデータを送信できます。
- 圧縮されているがロスレス音声フォーマットを使用します。 音声ファイルを圧縮する必要がある場合は、
audio/flac
フォーマットを使用します。このフォーマットでは、ロスレス圧縮が使用されます。 ロスレス圧縮では、音声のサイズは縮小されますが、品質は維持されます。 FLAC フォーマットは、書き起こしの正確度を最大化するのに適しています。 - 最後の手段として非可逆圧縮を使用します。 さらに大きな圧縮が必要な場合は、Opus コーデックを使用した
audio/ogg
フォーマットを使用します。 Ogg フォーマットは非可逆圧縮を使用しますが、Ogg フォーマットと Opus コーデックの組み合わせでは、非可逆圧縮アルゴリズムの中で音声の正確度の低下が最小限になることが示されます。
より高いレベルの圧縮で他のフォーマットを使用すると、書き起こしの正確性が低下する可能性があります。 ご使用の音声とアプリケーションに最適なフォーマットを判別するには、サービスを試してください。 音声認識を改善するその他の方法については、音声認識を改善するためのヒントを参照してください。
音声の変換
音声フォーマットの変換にはさまざまなツールを使用できます。 これらのツールは、サービスでサポートされていないフォーマットの音声や、非圧縮またはロスレスのフォーマットの音声の場合に役立ちます。 後者の場合、音声を非可逆フォーマットに変換してサイズを縮小できます。
音声のフォーマットの変換に使用できるフリーウェア・ツールを以下に示します。
- SoundeXchangeSoX)sox.sourceforge.net)。
- FFmpeg ffmpeg.org)。 また、FFmpeg を使用して、音声データと動画データの両方を含むマルチメディア・ファイルから音声を切り分けることもできます。 詳しくは、動画ファイルからの発話の書き起こしを参照してください。
- Audacity® audacityteam.org)。
- Opusコーデックを使ったOggフォーマットなら、opus-tools。
これらのツールでは、複数の音声フォーマットがクロスプラットフォームでサポートされています。 さらに、ツールの多くは、音声の再生にも使用できます。 ツールを使用する際は、適用される著作権法に違反しないでください。
Opus コーデックを使用する audio/ogg への変換
opus-toolsには、Opus コーデックで Ogg オーディオを扱うための 3 つのコマンドラインユーティリティが含まれています:
- opusencユーティリティは、WAV、FLAC、その他のフォーマットのオーディオをOpusコーデックでOggにエンコードします。 このページでは、音声ストリームの圧縮方法が説明されています。 圧縮は、リアルタイム音声をサービスに渡すときに役立ちます。
- opusdecユーティリティは、Opus コーデックのオーディオを非圧縮 PCM WAV ファイルにデコードします。
- opusinfoユーティリティは、Opus ファイルの情報と有効性のチェックを行います。
多くのユーザーは音声認識用に WAV ファイルを送信します。 このサービスには、同期 HTTP 要求と WebSocket 要求での 100 MB のデータ制限があるため、WAV フォーマットでは 1 つの要求で認識できる音声の量が少量となります。 opusenc コマンドを使用して、音声を優先フォーマットの audio/ogg:codecs=opus
に変換すると、1 回の認識要求で送信できる音声の量が大幅に増加します。
例として、256 kbps のビット・レートに 1 サンプル当たり 16 ビットを使用する非圧縮広帯域 (16 kHz) WAV ファイル (input.wav) の場合を考えましょう。 以下のコマンドは、音声を Opus コーデックを使用するファイル (output.opus) に変換します。
opusenc input.wav output.opus
この変換では、音声が 1/4 に圧縮され、ビット・レートが 64 kbps の出力ファイルが生成されます。 しかし、Opusの推奨設定によれば、ビットレートを24kbpsに下げても、スピーチ音声用のフルバンドを維持することができます。 そのようにビット・レートを下げることにより、音声を
1/10 に圧縮できます。 以下のコマンドは、--bitrate
オプションを使用して、ビット・レート 24 kbps で出力ファイルを生成します。
opusenc --bitrate 24 input.wav output.opus
opusenc ユーティリティーによる圧縮は高速です。 リアルタイムよりも約 100 倍高速に圧縮が行われます。 コマンドが完了すると、実行時間と結果の音声データに関する詳細情報を示す出力がコンソールに書き込まれます。
動画ファイルからの発話の書き起こし
音声と動画の両方が含まれるマルチメディア・ファイルから発話を書き起こすことはできません。 音声認識では音声データのみが受け入れられます。
音声と動画の両方が含まれるマルチメディア・ファイルから発話を書き起こすには、動画データから音声データを切り分けておく必要があります。 FFmpeg ユーティリティーを使用すれば、動画ソースから音声を切り分けることができます。 詳細は ffmpeg.orgを参照。
音声認識を改善するためのヒント
音声認識の品質の改善に役立つヒントを以下に示します。
-
音声の録音方法によって、サービスの結果に大きな差が生じることがあります。 音声認識は、入力音声の品質に大きく左右される可能性があります。 可能な限り高い正確度を実現するには、入力音声の品質を可能な限り高くしてください。
- 可能な場合は近くに配置した音声指向マイク (ヘッドセットなど) を使用し、必要に応じてマイクの設定を調整してください。 音声の取り込みにプロ用マイクを使用すると、サービスの機能性が最大限に発揮されます。
- システム内蔵マイクは使用しないでください。 一般にモバイル・デバイスやタブレットの内蔵マイクでは不十分なことがよくあります。
- 話者がマイクに近い位置にいることを確認してください。 話者とマイクの距離が広がると、正確度が低下します。 例えば 10 フィートの距離では、適切な結果が生成されにくくなります。
-
16 kHz 以下のサンプリング・レート (広帯域モデルの場合) または 8 kHz 以下のサンプリング・レート (狭帯域モデルの場合)を使用し、1 サンプル当たり 16 ビットを使用します。 ターゲット・モデル (16 kHz または 8 kHz) よりも高いサンプリング・レートで録音された音声は、サービスによってモデルのレートに変換されます。 したがって、高い周波数を使用しても認識の正確度は改善されず、音声ストリームのサイズが増加します。
-
データ圧縮を提供するフォーマットで音声をエンコードします。 データをより効率的にエンコードすることで、100 MB の制限を超えずに、より多くの音声を送信できます。 人間の声の動的な範囲は音楽よりも制限されているため、音声は他のタイプの音声よりも低いビット・レートに対応できます。 それでも、IBM® では、音声フォーマットと圧縮アルゴリズムを慎重に選択することをお勧めします。 詳しくは、書き起こしの正確度の最大化を参照してください。
-
音声認識は、バックグラウンド・ノイズや人間の発話のニュアンスに左右されます。
- エンジン音、作業装置、通りの騒音、バックグラウンドでの会話などは、認識の正確度が大幅に低下する原因となる可能性があります。
- 方言的なアクセントや発音の違いも正確度の低下の原因となることがあります。
音声にこれらの特性がある場合は、音響モデル・カスタマイズを使用して音声認識の正確度を改善することを検討してください。 詳しくは、カスタマイズの理解を参照してください。
-
音声の特性について詳しく学習するには、音声認識要求で音声メトリックを使用することを検討してください。 音声信号の処理に関する知識がある場合は、メトリックは音声特性に関する有意義で詳細な洞察を提供できます。 詳しくは、音声メトリックを参照してください。