AmiVoice APIで不要語(フィラー)を表示するか除去するか選ぶ方法
安藤章悟
みなさま、こんにちは。
今日はAmiVoice APIにおけるフィラー(不要語)の扱いについて説明します。
この記事を書こうとしたきっかけ
このようなことがありました(フィクションです)
解説
AmiVoice APIには「えーと」「あのー」などのフィラー(不要語)を自動的に除去するという便利機能があります。しかし、上記のマンガの例のように、フィラーが除去されると困ることもあるかもしれません。
フィラー除去のメリット・デメリットをまとめると以下になります。
- メリット
- 不要な文字がなくなり音声認識結果が読みやすくなる
- デメリット
- 音声認識結果から細かいニュアンスが失われる恐れがある
デフォルトは除去されるようになっていますが、リクエストパラメータの d パラメータに keepFillerToken=1 を追加することで、フィラーを消さずに出力することが可能になります。
マニュアルのここに記載があります。
実際にやってみた
それでは実際にやってみましょう。AmiVoice APIの使い方はいくつか種類がありますが、今回は短い音声ファイルに向いた同期 HTTP 音声認識 APIを使ってやってみます。
基本的な手順はこちらの記事の通りになります。Windows10環境での説明になります。
記事中盤に、run.bat というファイルを編集するところがありますが、そこで2行目をさらに下記のように書き換えます。ポイントは d パラメータに keepFillerToken=1 を指定しているところです。
curl -X POST https://acp-api.amivoice.com/v1/recognize -F u=%AppKey% -F d="grammarFileNames=-a-general keepFillerToken=1" -F a=@../../audio/myvoice.mp3 > result.txt
上記のマンガのようなセリフを私が喋った音声(myvoice.mp3)を用意して、この書き換えたrun.batを実行して比較をしてみました。
- d パラメータにkeepFillerToken=1を足した場合の音声認識結果
- %えー%%えっとー%%あー%%あのー%僕はいいと思うんですけど、%ん%%まー%%ん%%まー%%まー%いいんじゃないでしょうか
- d パラメータに何も入れない場合の音声認識結果
- 僕はいいと思うんですけど、いいんじゃないでしょうか
パラメータの有り無しで、フィラーの出力が変わることが分かります。
また、フィラー単語の前後は半角の「%」で囲まれています。そのため開発者は音声認識結果が出てくる場面ごとにフィラーをどう扱うかを選択できるようになります。
- フィラーを残したい場合 → プログラムで「%」だけを除去する
- フィラーを消したい場合 → プログラムで「%」で囲まれた箇所全体を除去する
さいごに
AmiVoice APIをデフォルトで使う場合は自動的にフィラーが除去されますが、上記のやり方をすることで、フィラーを残し、場面に応じて開発者が除去するかどうかを決めることができるようになります。より良い音声認識結果活用のために検討してみてはいかがでしょうか。
この記事を書いた人
この記事のマンガを書いた人
-
星BANされた宇宙子
絵を描いている人。