基本操作ガイド

Basic Guide

Google Cloud Speech API の音声データのエンコーディングについて

Google Cloud Speech API の音声データのエンコーディングについて

Google Cloud Speech API (以降 Cloud Speech API と略す)がサポートする音声データのエンコーディングは、次のとおりです。

エンコーディング 説明
LINEAR16 16 ビットのリニア PCM。非圧縮な 16 ビット符号付きデータ。データのバイトオーダーは、リトルエンディアン。
FLAC 可逆圧縮であり元の音声データからの音質劣化がないため、Cloud Speech 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 API では、最良の結果を得るエンコーディングとして、FLAC か LINEAR16 の使用を推奨しています。

上記以外の非可逆圧縮でエンコーディングされた音声データ(MP3 や AAC など)を Cloud Speech API で認識させたい場合は、FLAC か LINEAR16 に変換して使用します。ただし、非可逆圧縮のときに失われたデータにより音声認識の精度は落ちる可能性があります。

音声データの変換

音声データの変換方法として、SoX (Sound eXchange) を使用した例を紹介します。

音声認識ブロックの使い方」では、Audacity というアプリを使用した FLAC 形式の音声録音の方法を紹介しています。Audacity に音声データを取り込んで、FLAC 形式で出力すれば、SoX と同様のことができます。

SoX は、音声ファイルを簡単に編集するコマンドラインツールです。Windows、macOS、Linux で動作します。

例えば、MP3 形式の音声データを FLAC 形式の音声データに変換したい場合は、コマンドプロンプト(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

非可逆圧縮の MP3 形式に保存した段階で情報が失われているため、可逆圧縮の FLAC に変換したとしても音声認識の精度はある程度妥協せざるを得ません。できる限り非可逆圧縮なエンコーディングの使用は避けてください。