TIPS
AmiVoice API を使った開発に役立つヒントを紹介します。
クライアントプログラム関連
意図しない音声認識の実施を防ぐ
音声認識終了後の切断し忘れや誤操作などにより、意図せず音声認識を実施してしまうケースがあります。このような事故による、重要情報を含む音声データの不本意な送信や、不要な費用の発生などを防ぐための仕組みを、クライアントプログラムに実装することを推奨します。 たとえば、以下のような仕組みが考えられます。
- 音声録音や音声認識が実施中であることを、画面表示などでユーザに対してわかりやすく知らせる。
- リアルタイム音声認識の場合、セッション時間が一定時間を超えた場合はダイアログを出現させ、ユーザに確認を行う。
音声データ関連
録音品質の確認の推奨
音声認識結果が著しく悪く、文章としての体裁すら保てていないような場合、録音品質が悪い可能性があります。せっかく音声認識をしたのに認識結果が使い物にならない、などということを防ぐため、エンドユーザに対して録音品質の確認を促すことを推奨します。 たとえば、以下のようなポイントを確認してください。
- 認識させたい発話音声の音量は十分であるか。大まかな目安として、16-bit の音声であれば振幅が 3000 程度あると良い。逆に音量が大きすぎて音割れしてしまわないようにも注意が必要。
- 発話音声がこもって聞き取りづらくなっていないか。
- 環境音や他の話者の声などの雑音が大きすぎて、認識させたい発話音声がかき消されていないか。
音声認識リクエストのパラメータが適切で、録音品質にも問題が無い場合、音声認識結果が著しく悪くなることはありません。事前に録音品質が確認できない場合でも、リアルタイムに認識結果を確認し、異常な認識結果になる場合は録音の見直しを行うなど、適切な品質で録音を行うようにしてください。 特に広い会議室での対面による会議などは、静かな室内であっても、レコーダーの置き方や性能などによっては、上記のよう に録音品質が悪くなる場合があることに注意してください。(例:レコーダーが認識させたい発話の話者から遠い、レコーダーのすぐ近くでタイピング音や紙をめくる音といった雑音が発生している、など)
音声データの加工に関する注意
音声認識をさせる音声データは、人の耳でも聞き取りやすい音声(音量、音質、話し方など)であるほうが音声認識の精度も上がりやすくなります。しかし、加工のされた音声の場合、人の耳では聞こえやすくても音声認識の精度は低下することがあります。以下に、音声データの加工に関する注意事項を記載します。
ノイズキャンセリング・エコーキャンセリング
ノイズキャンセリングやエコーキャンセリングは、その手法によっては、音声の信号が歪んで、音声認識エンジンの学習している音と特徴が変化してしまい、その結果音声認識の精度が低下する場合があります。雑音がひどい時に有効な場合もありますが、一般には使用しないことを推奨します。
オートゲインコントロール(AGC)
音声信号のレベルを一定に保つオートゲインコントロール(AGC、自動利得制御)は、音声認識にとってはマイナスの影響がありますが、発話区間を検出するプロセスにとってはプラスにもなり得ます。発話が全く検出されないことで精度が悪くなってしまうケースでは、AGC を使うことで精度が改善する可能性があります。なお、発話区間の検出されやすさ等は、リクエストパラメータで調節することも可能です。
圧縮
音声認識をさせる音声データは、必ずしも FLAC のようなロスレス圧縮である必要はありません。圧縮しても精度にほとんど影響が無いことが多いですが、人の耳でも聞き取りづらくなるような強い圧縮をかけてしまうと、認識精度に影響が生じるので注意してください。
AmiVoice Tech Blogでは、サンプリングレートや圧縮率が音声認識の精度に与える影響について の検証を紹介しています。こちらも参考にしてください。