同じ英語を同じ発音で話しても、使う機械によって認識の結果が変わることがある。
スマホでは通るのに、パソコンのブラウザでは通らない。
この差の一部は、発音でもAIの賢さでもなく、音の刻み方で説明がつく。
その刻み方を表す数字が「サンプリングレート」だ。
音声認識の会社は、この数字について公式ドキュメントにかなり踏み込んだ指示を書いている。
「16,000 Hz 以上で録れ」「リサンプリングするな」「ノイズ除去をかけるな」といった、わりと強い言い方の指示だ。
この記事では、AIの部品を売っている会社の開発者向けドキュメントの記述だけを材料にして、サンプリングレートが認識にどう効いているのかを1つずつ開けていく。
サービスの順位づけはしない。仕組みの話だけをする。
【結論】サンプリングレートは「16,000 Hz 以上、ただし変換はするな」が公式の答え
先に答えを置く。
Google Cloud のSpeech-to-Text のベストプラクティスは、最初の推奨事項としてこう書いている。「Capture audio with a sampling rate of 16,000 Hz or higher.」
そして避けるべきこととして、すぐ次にこう続ける。「Lower sampling rates may reduce accuracy. However, avoid re-sampling.」
低いサンプリングレートは精度を下げうるが、あとから上げ直すのはもっと駄目だ、という二段構えの指示になっている。
公式が挙げている具体例が分かりやすい。「For example, in telephony the native rate is commonly 8000 Hz, which is the rate that should be sent to the service.」
| 状況 | 公式が推奨するサンプリングレートの扱い |
|---|---|
| これから録音する | 音源側を 16,000 Hz に設定する |
| 電話音声(元が 8,000 Hz) | 8,000 Hz のまま送る。16,000 Hz に上げ直さない |
| ヘッダーのないコーデック | 音源の実際のサンプリングレートに合わせて値を指定する |
| ヘッダーのあるコーデック | 自動で正しいサンプリングレートを選ばせる設定を使う |
⇒ サンプリングレートは「高ければ高いほど良い」ではなく、「録った時点の値をそのまま渡す」が正解になっている。
サンプリングレートとは何を数えている数字なのか
まず定義を、公式の言葉で確認しておく。
Google Cloud の音声エンコードの解説ページは、こう説明している。
「A digital audio segment’s sample rate specifies the number of samples to take from an audio’s source material (per second); a high sample rate increases the ability of digital audio to faithfully represent high frequencies.」
1秒間に何回、波の高さを測るか。それがサンプリングレートだ。
測る回数が多いほど、高い周波数の成分を残せる。
公式は理由も書いている。「you generally need to sample more than twice the highest frequency of any sound wave you want to capture digitally」。
そして人間の聴覚の範囲(20-20000 Hz)を表すには「a digital audio format must sample at least 40000 times per second (which is part of the reason why CD audio uses a sample rate of 44100 Hz)」と続く。
ここで音楽と音声の違いが出る。
同じページに「Linear PCM uses a sample rate of 44,100 Hz within CDs, which is appropriate for the recomposition of music; however a sample rate of 16000 Hz is more appropriate for recomposing speech」と明記されている。
音楽には 44,100 Hz、音声には 16,000 Hz。用途が違えば適正値が違う、という整理だ。
サンプリングレートと並んでもう1つある数字|ビット深度
サンプリングレートだけでは音は決まらない。
もう1つ、ビット深度(bit depth)という数字が対になっている。
公式の説明はこうだ。「Bit depth affects the dynamic range of a given audio sample. A higher bit depth lets you represent more precise amplitudes.」
| 数字 | 何を決めるか | 足りないとどうなるか |
|---|---|---|
| サンプリングレート | 1秒あたりに測る回数=高い音をどこまで残せるか | 子音などの高い成分が落ちる |
| ビット深度 | 1回の測定の細かさ=大きい音と小さい音の幅 | 小さい声がノイズに埋もれる |
公式が挙げている実例が分かりやすい。「CD musical audio is provided using 16 bits of bit depth. DVD Audio uses 24 bits of bit depth, while most telephony equipment uses 8 bits of bit depth.」
そして「Higher bit depths also reduce the signal to noise ratio within audio samples」とも書かれている。
電話の音が聞き取りにくいのは、サンプリングレートが 8,000 Hz で、ビット深度も 8 bit だからだ。
Google の LINEAR16 エンコードは 16 bit の深度を持ち、CD と同じ Linear PCM の系列だと公式に書かれている。
サンプリングレートがコーデックごとに固定されている場合がある
ここが実務でいちばん引っかかるポイントだ。
サンプリングレートは自由に選べる数字ではなく、コーデックによっては値が決め打ちされている。
Google Cloud のエンコードのページに載っている対応表から、サンプリングレートの条件が書かれているものを抜き出す。
| コーデック | 公式が書いているサンプリングレートの条件 |
|---|---|
| AMR(Adaptive Multi-Rate Narrowband) | Sample rate must be 8000 Hz |
| AMR_WB(Adaptive Multi-Rate Wideband) | Sample rate must be 16000 Hz |
| OGG_OPUS(Opus in Ogg container) | 8000 / 12000 / 16000 / 24000 / 48000 Hz のいずれか |
| SPEEX_WITH_HEADER_BYTE(Speex wideband) | Sample rate must be 16000 Hz |
| WEBM_OPUS | 8000 / 12000 / 16000 / 24000 / 48000 Hz のいずれか |
| LINEAR16(16-bit linear PCM) | ヘッダーにサンプリングレートが入っている必要がある |
| FLAC | ヘッダーにサンプリングレートを含めて送る必要がある。16-bit または 24-bit |
AMR を選んだ時点で、サンプリングレートは 8,000 Hz に固定される。
16,000 Hz で録りたければ、まずコーデックを選び直すところから始まる。
そして FLAC について、公式は特別な注意を書いている。「A FLAC file must contain the sample rate in the header in order to be submitted to the Cloud Speech-to-Text API. FLAC is the only encoding that requires audio data to include a header; all other audio encodings specify headerless audio data.」
WAV と FLAC については、サンプリングレートの申告を省略できるという記述もある。
「You are not required to specify the encoding and sample rate for WAV or FLAC files. If omitted, Cloud Speech-to-Text automatically determines the encoding and sample rate for WAV or FLAC files based on the file header. If you specify an encoding or sample rate value that does not match the value in the file header, then Cloud Speech-to-Text returns an error.」
申告した値と実物がずれていたら、精度が落ちるのではなくエラーになる。
サンプリングレートを守っても、圧縮方式で台無しになる
録音形式の条件は、サンプリングレートだけでは終わらない。
Google のベストプラクティスは、2番目の推奨としてこう書いている。「Use a lossless codec to record and transmit audio. FLAC is recommended.」
避けるべきこととして挙がっているのはこうだ。「Using mp3, mp4, m4a, mu-law, a-law or other lossy codecs during recording or transmission may reduce accuracy.」
そして、どうしても圧縮が必要な場合の優先順位まで書かれている。「If your application must use a lossy codec to conserve bandwidth, we recommend the AMR_WB or OGG_OPUS codecs, in that preferred order.」
非可逆圧縮がなぜ効くのか、その理由も明記されている。
「Although the removal of such data through lossy compression may not noticeably affect audio as heard by the human ear, loss of such data to a speech recognition engine may significantly degrade」と、人間の耳と機械の耳を分けて書いている。
人間が聞いて自然に聞こえることと、機械が正しく認識できることは、別の話だということだ。
μ-law についても具体的な比較が書かれている。「16 bit LINEAR16 (uncompressed PCM) is still far superior to 8 bit uLaw compressed」。
- Cloud Speech-to-Text が可逆としてサポートするのは FLAC と LINEAR16 の2つだと公式に書かれている。
- ただし「Technically, LINEAR16 isn’t “lossless compression” because no compression is involved in the first place」とも注釈されている。
- ファイルサイズや転送量が問題なら FLAC を使え、というのが公式の推奨だ。
サンプリングレート以前の問題|ノイズ除去をかけると精度が落ちる
これは直感に逆らう指示なので、そのまま引用しておく。
「However, applying noise-reduction signal processing to the audio before sending it to the service typically reduces recognition accuracy. The service is designed to handle noisy audio.」
ノイズを取ってからAIに渡したほうがよさそうに思えるが、公式の指示は逆だ。
ベストプラクティスの「For best results」の項目はこう並んでいる。
- 話している人にできるだけマイクを近づける(特に背景ノイズがあるとき)。
- Avoid audio clipping.(音割れを避ける)
- Do not use automatic gain control (AGC).(自動ゲイン制御を使わない)
- All noise reduction processing should be disabled.(ノイズ除去処理はすべて無効にする)
- サンプル音声を実際に聞いて、歪みや想定外のノイズがないか確かめる。
認識エンジン側は「ノイズは自分で処理する前提」で作られている。
公式は認識器の性格についてもこう書いている。「The recognizer is designed to ignore background voices and noise without additional noise-canceling.」
ただし限界も併記されている。「Multiple people talking at the same time, or at different volumes may be interpreted as background noise and ignored.」
同時に複数人が話すと、片方が背景ノイズとして無視されうるということだ。
サンプリングレートとフレームサイズ|リアルタイム会話ではもう1つ数字が増える
AI英会話はストリーミング認識なので、録音ファイルとは別の条件が加わる。
公式の説明はこうだ。「Streaming recognition recognizes live audio as it is captured from a microphone or other audio source. The audio stream is split into frames」。
そして「Any frame size is acceptable. Larger frames are more efficient, but add latency. A 100-millisecond frame size is recommended as a good tradeoff between latency and efficiency.」と続く。
| 数字 | 公式の推奨 | 効いてくるところ |
|---|---|---|
| サンプリングレート | 16,000 Hz(音源側で設定) | どこまで細かい音を残せるか |
| ビット深度 | LINEAR16 は 16 bit | 声の大小の幅 |
| フレームサイズ | 100 ミリ秒 | 返事が返ってくるまでの遅れ |
| コーデック | FLAC(可逆)を推奨 | 圧縮で捨てられる情報の量 |
AI英会話のテンポの悪さは、サンプリングレートではなくフレームサイズの側で決まっている部分がある。
サンプリングレートは「どれだけ正しく聞き取れるか」、フレームサイズは「どれだけ速く返ってくるか」を担当していると整理できる。
サンプリングレートの要求は、モデルの学習データにも同じ値で出てくる
同じ 16,000 Hz という数字は、モデルを追加学習させる側の仕様にも出てくる。
Microsoft のカスタム音声のトレーニングとテストのデータセットは、アップロードするオーディオの条件を表で定めている。
| プロパティ | 値 |
|---|---|
| ファイル形式 | RIFF (WAV) |
| サンプル レート | 8,000 Hz または 16,000 Hz |
| チャンネル | 1(モノラル) |
| サンプル形式 | PCM、16 ビット |
| オーディオあたりの最大長 | 2 時間(テスト)/40 秒(トレーニング) |
| アーカイブ形式 | .zip(最大 2 GB または 10,000 ファイル) |
許されるサンプリングレートは 8,000 Hz か 16,000 Hz の2択で、44,100 Hz は入っていない。
同じドキュメントには、変換のためのコマンド例まで載っている。
「オーディオ ファイルを、シングルチャネル、16 ビット、16 KHz に変換します」として sox <input> -b 16 -e signed-integer -c 1 -r 16k -t wav <output>.wav が示されている。
音声認識の世界では、16,000 Hz・16 bit・モノラルの WAV が事実上の標準形になっているということだ。
CD 品質の 44,100 Hz ステレオは、この世界では「多すぎる」形式になる。
サンプリングレートとチャンネル数|複数人の声は分けて送る
録音形式の条件には、チャンネルの扱いも含まれている。
Google のベストプラクティスはこう書く。「If you are capturing audio from more than one person, and each person is recorded on a separate channel, send each channel separately to get the best recognition results. However, if all speakers are mixed in a single channel recording, send the recording as is.」
Microsoft 側にも対応する記述がある。
音声テキスト変換の概要には「リアルタイム音声テキスト変換では、最大 2 つのオーディオ チャネルを個別に文字起こしし、各結果にソース チャネルでタグを付けることができます」とある(プレビュー機能としての記述)。
一方、カスタムモデルの学習データのほうは「チャンネル=1(モノラル)」で固定されている。
- 認識のときは、話者ごとにチャンネルが分かれているならそのまま分けて送るのがよい。
- 1本に混ざってしまっているなら、無理に分離せずそのまま送る。
- 学習データを作るときは、モノラルに落とす必要がある。
同じ「音声データ」という言葉でも、認識に渡すときと学習に渡すときで要求される形が違う。
サンプリングレートから逆算した、AI英会話のマイク環境の整え方
ここまでの仕様から、利用者側で打てる手が決まる。
効果を保証する話ではなく、公式の推奨がそうなっているという話だけを書く。
- マイクを口に近づける。 公式が「Position the microphone as close as possible to the person that is speaking」と繰り返し書いている、いちばん安上がりな改善だ。
- ノイズキャンセルや音声補正を切る。 「All noise reduction processing should be disabled」「Do not use automatic gain control (AGC)」が公式の指示である。会議アプリの補正が裏で効いていないか確認する価値がある。
- 音割れさせない。 「Avoid audio clipping」も同じリストに並んでいる。マイクに近づけすぎて割れるのは逆効果だ。
- Bluetooth のヘッドセットは条件が変わりうる。 通話モードに入ると帯域の狭いコーデックになる機器がある。公式表のとおり、AMR 系は 8,000 Hz に固定される。
- 同時にもう1人が話している環境を避ける。 「Multiple people talking at the same time…may be interpreted as background noise and ignored」と明記されている。
どれも発音の練習とは無関係の、入力の物理条件の話である。
サンプリングレートに関するよくある質問
Q. サンプリングレートは高いほど認識がよくなるのか。 A. 公式は「16,000 Hz 以上で録れ」と書く一方で、「avoid re-sampling」とも書いている。電話の 8,000 Hz はそのまま送るべきだとされており、あとから引き上げる操作は推奨されていない(出典)。
Q. MP3 で録った音声を渡してもいいのか。 A. 公式は「Using mp3, mp4, m4a, mu-law, a-law or other lossy codecs during recording or transmission may reduce accuracy」と書いている。可逆コーデック(FLAC 推奨)に変えられるなら変えたほうが仕様と噛み合う。
Q. 申告したサンプリングレートが実際とずれていたらどうなるか。 A. WAV と FLAC については「If you specify an encoding or sample rate value that does not match the value in the file header, then Cloud Speech-to-Text returns an error」とエンコードのページに明記されている。精度が落ちるのではなくエラーになる。
Q. ノイズキャンセル機能がついたマイクを使うべきか。 A. 公式は「All noise reduction processing should be disabled」と書いている。認識器の側が「designed to handle noisy audio」だと説明されており、前処理で整えるのは推奨されていない。
Q. 音声認識に使う標準的な録音形式は何か。 A. Microsoft のカスタム音声のデータ要件は RIFF (WAV)・8,000 Hz または 16,000 Hz・1チャンネル(モノラル)・PCM 16 ビットと表で定められている。同じページに sox での変換コマンド例も載っている。
まとめ|サンプリングレートは「録った値のまま渡す」が正解
もう一度整理する。
- 公式の推奨は「16,000 Hz 以上で録る」かつ「リサンプリングしない」の二段構え。音声には 16,000 Hz が適切だと明記されている。
- サンプリングレートはコーデックで固定されることがある。AMR は 8,000 Hz、AMR_WB と Speex wideband は 16,000 Hz と公式表に書かれている。
- 数値を守っても非可逆圧縮で情報が落ちれば精度は下がる。可逆は FLAC と LINEAR16 の2つだけだと公式が書いている。
- ノイズ除去とAGCは切るのが公式の指示。前処理が精度を下げると名指しで書かれている。
- リアルタイム会話ではフレームサイズ 100 ミリ秒が推奨で、これは精度ではなく遅れを決める数字だ。
⇒ 「AIが自分の英語を聞き取ってくれない」と感じたとき、口の側ではなくマイクと録音形式の側に原因がある可能性を先に潰しておくと、練習の手応えが正しく測れるようになる。
※本記事の一次ソースはすべて2026-09-16に各公式ドキュメントで確認した。仕様は更新されるため、最新は各公式ドキュメントで確認してほしい。
Comments