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に変換したとしても音声認識の精度はある程度妥協せざるを得ません。できる限り非可逆圧縮なエンコーディングの使用は避けてください。