録音音声の自動文字化をできるだけ高精度で行うために、知っておきたいポイント(3)[その1]

録音音声の自動文字化をできるだけ高精度で行うために、知っておきたいポイント(3)[その1]

前回の(2)では、音声認識に適した質のよい音声となるよう、録音状態をよくするためのコツやポイントをまとめた。最後に(3)では、音声認識に適した音質レベルや音声形式などについてまとめてみたい。

【(1)目次】
1-1. 音声認識を使った文字起こしについて、現状。
1-2. 音声認識に適した「話し方」について、コツ/ポイントなど。
【(2)目次】
2-1. 認識率を上げる「録音」について、コツ/ポイントなど。
2-2. 会話を録音するマイクについて。
2-3. 雑音(ノイズ)や反響について。
2-4. 複数話者の音声の文字化について。
【(3)[その1]目次:本ページはこちら】
3-1. 録音品質は、録音時の音質レベルや音声形式によっても変わる。
3-2. 録音するときの音質レベルや音声形式は、どれを選べばいいか。
3-3. 音声認識に適した音質レベルや音声形式、現在の最適解とは。
3-4. 最良の結果を得るために、録音後のアプローチで避けたいこと・知っておきたいこと。

※音声認識についての推奨事項などは、次の音声認識APIのドキュメントに書かれている内容などを基にしています。

【主に参考にした音声認識API】
Google Cloud Speech-to-Text(以下Google)
Microsoft Azure Speech Services(以下Microsoft)
IBM Watson Speech to Text(以下IBM)
Amazon Transcribe(以下Amazon)
・そのほかJuliusなど。

※音質や音声形式に関する基礎知識的なところは、ここでは説明が足りないことから厳密に言うと少し違う/誤解を与えてしまうような書き方になっているところがあるかもしれません。詳しく知りたい方は専門サイトを参照してください。

3-1. 録音品質は、録音時の音質レベルや音声形式によっても変わる。

録音環境を整えマイクも使って状態よく音声を録音したとしても、録音時の音質レベルが低い場合(低音質での録音)は音質が劣化してしまう。また、MP3などのロッシー圧縮形式で録音した場合は、圧縮時に一部のデータと品質が損なわれてしまう。録音品質は、録音時の音質レベルや音声形式(音声ファイルフォーマット[コンテナ]コーデック[圧縮のアルゴリズム])によっても変わってくるので気を付けたい。

【知っておきたいこと】

  • 録音品質は、録音時の音質レベルや音声形式によっても変わる。
  • 低音質での録音の場合、データサイズが抑えられるので長時間の録音が可能になるが、音質が劣化する。
  • 音質を重視する場合は高音質での録音が推奨されるが、高音質になるほど、また録音時間が長くなるほど、データサイズが大きくなる。
  • 音声形式は、大きく分けると「非圧縮(無圧縮)」「ロスレス圧縮(可逆圧縮)」「ロッシー圧縮(非可逆圧縮)」の3つに分類される。
  • 音声を圧縮することでデータサイズ(ファイルサイズ)を縮小できるが、MP3などのロッシー圧縮形式での録音は、圧縮時に一部のデータと品質が損なわれる。
  • 音声の劣化や情報の損失が音声認識の精度に影響する場合がある。
3-2. 録音するときの音質レベルや音声形式は、どれを選べばいいか。

基本的には録音した音声データを何に使うのか、音質と録音時間(データサイズ)のどちらを重視するのかを考え、それによって最適なものを選ぶといい。

音声データの用途が音声認識による文字起こしである場合は、音質の良し悪しがその精度に関わってくるため、音質重視で、高音質での録音、原音をそのまま残せる音声形式での録音を推奨する。

なお、高音質というと例えば音楽CDレベル、ハイレゾと上を目指すと切りがないが、音声認識では高音質といっても、最良の結果を得るのに例えば音楽CDレベルの音質(*1)が求められるわけではない。

また、高音質になるほど音声認識の精度が向上するというわけでもないため、実際は音質レベルが高すぎてもデータサイズが不必要に大きくなるだけといえる。

よって、録音時にどこまで細かく音質レベルなどを設定できるかは使う録音デバイスによるが、音質は重視しつつ録音時間とのバランスを取るなら、次の項目3-3で挙げる音声認識に適した音質レベルなどを参考に、録音設定を検討するといいだろう。

録音時間を優先したい場合も、低音質での録音は音声認識の精度が低下する可能性があるため、音声認識で良い結果を得たいなら、音声認識で必要とされる音質レベルよりも低くならない録音設定を選択したい。

【基本的には】

  • 音声データを何に使うのか、音質と録音時間(データサイズ)のどちらを重視するのかを考える。
  • 音質重視の場合や、データの汎用性を重視する場合は、高音質での録音、原音をそのまま残せる音声形式での録音が推奨される。
  • 音声データの使い道が決まっているのであれば、用途に適した音質レベルや音声形式で録音することで、データを用途に最適化できる。

*1:通常の音楽CDの音質は、音声のサンプリングレート(サンプリング周波数)=44100Hz(44.1kHz)、ビット深度(量子化ビット数)=16bit、ステレオ(チャンネル数=2)で、ビットレート(1秒間に何ビットのデータが転送/処理されるかを示す)は1411200bps=1411.2kbps。


例えば、サンプリングレート(サンプルレートとも言う、音声データの音質を左右する要素の一つ)を通常の音楽CDレベルの44100Hzから16000Hzに下げると、録音可能時間が長くなる(この画像例の時間はモノラルの場合)。

3-3. 音声認識に適した音質レベルや音声形式、現在の最適解とは。

では、音声データの用途が音声認識による文字起こしで、かつ録音音声の自動文字化で最良の結果を得たいという場合、具体的にはどういう設定での録音が適しているのか。

音声認識に適した音質レベルや音声形式などを知るため、Googleをはじめとするいくつかの代表的な音声認識APIのドキュメントなどを確認した。各APIでの推奨事項などを交えた詳細については、長くなるので[その2]でまとめたいと思う。

ここでは結論のみを述べると、音声認識では最良の結果を得るために、具体的には音声のサンプリングレート=16000Hzもしくは16000Hz以上、ビット深度=16bit、原音をそのまま残せる音声形式―非圧縮かロスレス圧縮―での録音が推奨される。

【録音時設定:音声認識で最良の結果を得るには】

  • 音声のサンプリングレートは、16000Hz、もしくは、それ以上にする。ビット深度は、16bitでの録音を推奨。これより低い値だと、音声認識の精度が低下する可能性がある。
  • できる限りMP3などのロッシー圧縮形式は避ける(*2)。録音時は基本的に非圧縮のWAV(リニアPCM、16bit)の選択がベスト。
  • データサイズ(ファイルサイズ)を抑えたい場合、音声認識では、基本的にロッシー圧縮ではなく、データの欠損がなく品質を損なわずに音声のサイズを縮小できるロスレス圧縮が推奨される。
  • 音声認識ということでは、基本的にステレオ録音する必要はなく、モノラルにすることでデータ量は半分になる。ただし、録音チャンネルを基にした話者の識別を行う場合などにおいては、ステレオ録音が推奨される。

※ここでは基本的に一般的な音声での音声認識の場合を想定しており、電話の音声などは含めて考えていない。

*2:録音環境が悪い場合は特に避けたい。また、MP3などロッシー圧縮形式で録音する場合もビットレートを低くしすぎないように注意したい。

3-4. 最良の結果を得るために、録音後のアプローチで避けたいこと・知っておきたいこと。

録音後に音声データに対して何らかのデジタル処理/加工を施すことを「録音後のアプローチ」とし、音声認識で最良の結果を得るために、録音後のアプローチで避けたいことや知っておきたいことなどをまとめる。

【音声のノイズ除去処理などについて】

上手に録音できなかったとき、録音後に例えばノイズ除去処理などを行うことで音声の状態をよくしようと思うことがあるかもしれないが、録音後のアプローチによって、全ての情報を活用できる機械(音声認識)にとっては必要な情報まで削られてしまうことで逆に認識精度が低下してしまうことがあるので注意したい。

  • ノイズ除去処理、自動利得制御(AGC)の使用、音声のクリッピング(音割れ)に対する修復処理などは避ける。
  • 特にGoogleの音声認識で録音音声の自動文字化を行う場合、Googleではノイズのある音声を処理するように設計されているため、すべてのノイズ低減処理を無効にすることが推奨されている。

※ノイズやノイズ除去について詳しく知りたい場合は次のページが参考になる。
Audacityで音声ノイズを除去

【音声のサンプリングレート変換(リサンプリング)について】

音声認識での音声のサンプリングレートの最適値は16000Hzだが、例えば音声データが既に16000Hz以外のサンプリングレートで録音されている場合に音声を16000Hzでリサンプリング(再サンプリング)すると、誤変換が増える(正確な結果が生成されない)ことがある。

  • ダウンサンプリング(サンプリングレートを下げる変換)は場合によって有効だが、アップサンプリング(サンプリングレートを上げる変換)は音声データのサイズが大きくなるだけで質的に音声認識の正確度は改善しないため、音声認識の正確度が低下する。
  • 最良の結果を得るには、音声データが既に16000Hzより低いレートで録音されていてもアップサンプリングは避け、そのままのレートで音声認識させる。

【そのほか、知っておきたいこと】

  • 録音状態の悪い音声、高圧縮された音声、低音質で録音された音声などに対して、音声編集ソフトなどを使って後からビットレートなどを高くしたとしても、実質は元の音声以上に音質がよくなるわけではない。※数値上は高音質でも、質的には必ずしも「高ビットレート=音質がいい」が成り立つわけではない。
  • MP3などロッシー圧縮形式で保存した段階で情報が失われているため、例えば後から非圧縮のWAVやロスレス圧縮のFLACなどに変換したとしても音声認識の精度はある程度妥協せざるを得ない(一度失った情報は元には戻らない)。
  • 情報の損失あるいは補間が生じる処理/加工や変換を繰り返すことで品質は(元のデータと比較して)都度劣化していくので注意したい(原音の質とは懸け離れていく)。

(1)~(3)までいろいろとまとめてきたが、最重要なのはやはり「録音(上手に録音すること)」だ。この(3)では録音設定(音質レベルや音声形式)について取り上げたが、データ的な音質を高めても録音状態が悪ければあまり意味がないため、まずは録音環境を整え音声認識に適した音声となるよう状態よく録音することを心掛けたい。