Cloud Speech-to-Text API の音声データのエンコーディングについて
Cloud Speech-to-Text API の音声データのエンコーディングについて
Cloud Speech-to-Text API がサポートする音声データのエンコーディングは、次のとおりです。
エンコーディング | 説明 |
---|---|
LINEAR16 | 16 ビットのリニア PCM。非圧縮な 16 ビット符号付きデータ。データのバイトオーダーは、リトルエンディアン。 |
FLAC | 可逆圧縮であり元の音声データからの音質劣化がないため、Cloud Speech-to-Text API 推奨のエンコーディング。 |
MULAW | G.711 PCMU/mu-law。14 ビット符号付きを 8 ビットにエンコーディング。 |
AMR | Adaptive Multi-Rate Narrowband コーデック。音声データのサンプルレートは、800 Hz でなければならない。 |
AMR_WB | Adaptive MultiRate Wideband コーデック。音声データのサンプルレートは、16000 Hz でなければならない。 |
Cloud Speech-to-Text API では、最良の結果を得るエンコーディングとして、FLAC か LINEAR16 の使用を推奨しています。
上記以外の非可逆圧縮でエンコーディングされた音声データ(MP3 や AAC など)を Cloud Speech-to-Text API で認識させたい場合は、FLAC か LINEAR16 に変換して使用します。ただし、非可逆圧縮のときに失われたデータにより音声認識の精度は落ちる可能性があります。
音声データの変換
音声データの変換方法として、SoX (Sound eXchange) open_in_new を使用した例を紹介します。
info_outline「音声認識ブロックの使い方」では、Audacity open_in_new というアプリを使用した FLAC 形式の音声録音の方法を紹介しています。Audacity に音声データを取り込んで、FLAC 形式で出力すれば、SoX と同様のことができます。
SoX は、音声ファイルを簡単に編集するコマンドラインツールです。Windows・macOS・Linux などで動作します。
例えば、MP3 形式の音声データを FLAC 形式の音声データに変換したい場合は、コマンドプロンプトまたは Windows PowerShell(Windows)やターミナル(macOS・Linux)で次のように sox コマンドを実行します。
sox input.mp3 --rate 16k --bits 16 --channels 1 output.flac
また、音声データを切り出して変換したい場合は、次のように実行します。この例では、MP3 形式の音声データの 1 秒目から 5 秒目を切り出して、FLAC 形式の音声データに変換しています("trim 1 5
" の部分)。
sox input.mp3 --rate 16k --bits 16 --channels 1 output.flac trim 1 5
info_outline 非可逆圧縮の MP3 形式に保存した段階で情報が失われているため、可逆圧縮の FLAC に変換したとしても音声認識の精度はある程度妥協せざるを得ません。できる限り非可逆圧縮なエンコーディングの使用は避けてください。