Twilioで録音した3つの会話データをGoogle Cloud Speech APIでテキスト化してみた結果

Pocket

こんにちは!今回はGoogle Cloud Speech APIの精度ってどんなもんよ?ってことで、弊社BCT環境で構築した通話サービス(Twilioを利用)で録音した結果のテキスト化がどうなるかを公開します!今回実験したのは、Twilio VOICETwilio CLIENTを使っての比較です。

弊社BCTでは、一般電話回線もIP電話サービスも両方扱っており、相互乗り入れも行なっています。そうした中で、「そもそも通話品質はどうなの?」「録音できるの?」「録音したデータのテキスト化は可能?」といったお問い合わせを多く頂きます。それらに対する現状の回答というのが今回のエントリーになります。通話品質および録音についてはサポートしておりますが、テキスト化については弊社も検証段階であり、まずは生データをAPIに入れるだけだとどうなるか、という部分を公開したいと思います。

今回使ったサービス

Google Cloud Speech API

一応念のため、簡単におさらいで、Google Cloud Speech APIは高度な音声認識を有する以下のようなサービスです。

Google Cloud Speech API では、使いやすい API で高度なニューラル ネットワーク モデルを適用し、音声をテキストに変換できます。API は 110 以上の言語と方言を認識し、グローバルなユーザーベースをサポートします。アプリケーションのマイクから入力された音声をテキストに変換する、音声による制御を行う、音声ファイルをテキストに変換するなど、さまざまな機能を利用できます。Google が自身のサービスで利用している技術を利用して、リクエストでアップロードされた音声を認識し、Google Cloud Storage の音声ストレージに統合できます。

Twilio

Twilioは2種類のサービスを使っています。Twilo VOICEは以下の通り、一般電話回線を利用したもの。

Twilio VOICE は、一般電話回線を使用して携帯電話、スマートフォンや固定電話への音声通話を可能にします。
一般電話回線のため音声が高品質で通話のセキュリティーも高く、安定した通信が行えます。

Twilio CLIENTは、いわゆるIP電話サービスですね。

Twilio CLIENT は、インターネット回線によってデータ通信を行い、PC のブラウザー、スマートフォン・タブレットのアプリケーションを通じて音声通話を可能にします。Twilio で提供している iPhone、Android 用アプリケーション開発ライブラリ(SDK)を使えば、モバイルアプリケーションに簡単に組み入れられます。

通話した録音データとその品質について

今回は、電話占いサービスの一部のシーンを想定して、弊社スタッフが通話を試みました(会話の拙さはご容赦ください……笑)。データ自体はTwiloを経由して弊社AWSサーバーのS3に保存されたMP3ファイルを取得しています(つまり、上述の中の質問にある「録音できるか」というご質問に対しては「できる」となります)。

通話したのは「一般回線×一般回線」「IP電話×IP電話」「一般回線×IP電話」の3パターンです。
また、通話品質については解析アプリのSPLスペクトムアナライザで簡易的に結果を求めてみました。

①「一般回線×一般回線」(Twilio VOICE × Twilio VOICE)

一般回線同士での通話データはこちらです。

解析結果:21-9991Hz

②「IP電話×IP電話」(Twilio CLIENT × Twilio CLIENT)

IP電話同士での通話データはこちらです(上記と会話内容も異なります)。

解析結果:43-11929Hz

③「一般回線×IP電話」(Twilio VOICE × Twilio CLIENT)

一般回線とIP電話での通話データはこちらです(いずれも会話内容が異なります)。

解析結果:21-9819Hz

なお、Twilioによる通話品質の公式見解は以下の通りです。
Twilioが Record動詞(録音) で作成するファイル仕様は?

■WAVE仕様
RIFF / Microsoft PCM   16bit
Mono  8000 Hz

■MP3仕様
MPEG ADTS, Layer 3   32kbps
Mono  22050 Hz

通話内容とGoogle Cloud Speech APIによる比較の結果

以下にそれぞれの通話データの内容をテキスト起こししたものと、Google Cloud Speech APIによってテキスト化された内容の比較結果を掲載します。実際通話にあったものの、Google Cloud Speech APIで拾ってくれなかったテキストは紫色フォントで、実際の通話になかったりGoogle Cloud Speech APIが誤ってテキスト化したものは赤文字フォントで記載しました。

①「一般回線×一般回線」(Twilio VOICE × Twilio VOICE)

細かな抜けや誤りはありますが、全体的には内容はカバーされている印象ですね。

②「IP電話×IP電話」(Twilio CLIENT × Twilio CLIENT)

これについては中盤から音が篭ってしまった関係もあり、通話内容を認識できずにテキスト化できなかった項目が多い結果となりました。

③「一般回線×IP電話」(Twilio VOICE × Twilio CLIENT)

これはテキスト化の誤りが多い結果となりました。ただ、通話内容と合わせてテキストを読めば修正は可能なレベルと言えそうです(とはいえ、一番最初の間違いは何でしょうね笑)

Twilioで録音した通話データをGoogle Cloud Speech APIでテキスト化した所管

  • テキスト化の精度は通話データ自体の滑舌や収録状態により、それだけで完璧なデータにはならない
  • 録音されない音声、録音されても間違ってテキスト化されるケースがある
  • 運用にあたっては、機械学習または録音データを聞いて人的に修正などの、修正をする必要がある
  • とはいえ、全て手動でテキスト化するよりは、工数短縮になる可能性が高い

以上のような感じでしょうか。

実際に現場で運用するには、上述したように各種チューニングが必要になりますね!
Google以外にもSpeech to Textのサービスは出ていますので、比較版も作りたいですね!!

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です