Google,Microsoft,IBM各社のSpeech To Textなサービスの比較をしてみました

こんにちは!前回で作成したデータを元に、今度は、以下の3サービスの通話内容を比較してみました!

  • Google Cloud Speech API
  • IBM Watson Speech to text
  • Micrsoft Azure Bing Speech API

なお、Amazonも試したかったのですが、現状はまだ日本語未対応ということで、今回は見送りしました。。。

やったこと

上記3つのSpeech to TextなAPIサービスを、Twilioで録音した3つの音源でそれぞれテキスト化を試み、エクセルで並べて比較しました。

なお、Bing Speech APIについては、音声データが14秒までという制限があるため、14秒以上の音声ファイルがあったものについては冒頭の14秒のみの比較になっています。

留意点

各社のサービスで入力している音声ファイルについては、TwilioのMP3をそれぞれのサービスに合う形で変換しています。(多少の周波数の劣化はあるかもしれません)

  • Google Cloud Speech API → MP3ファイルそのまま
  • IBM Watson Speech to text →MP3ファイルをflacファイルに変換
  • Micrsoft Azure Bing Speech API →MP3ファイルをWAVファイルに変換

また、Twilioが電話による音声データという制限上、周波数が8,000ヘルツ程度となってしまい、例えばGoogleのおすすめする周波数帯には届かないといった課題もあります。

これらの音声ファイル上の工夫をすることによって、APIからの結果が向上される可能性は十分にあります。が、今回は単純にとってきたデータをそのまま使ってみることにしました。

結果

さっそく結果を共有してみます!(画像が見にくかったら、ごめんなさい!)
詳細はこちら(GoogleDrive)より確認することができます。

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

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

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

総論

ざっと見た限りだと、Google Cloud Speech APIが一番精度良いかな、という感想です。ただ、音声を拾ってくれてない箇所も何箇所かありますね。
Bing Speech APIも所々精度の良さは感じますが、14秒制限がある分、片手落ちな感じはありますね。
Watsonは、うーん、どうなんでしょうか。音声を拾ってきてくれてることには間違いなさそうですし、声に出してみたときに近しい言葉を返してきてくれてるようですが、テキストだけ読むと何が何やらというのが正直なところです。

とはいえ、音声データの品質向上を行い、機械・人による学習や編集を行うことで、精度はもっと向上できそうですね!

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

こんにちは!今回は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のサービスは出ていますので、比較版も作りたいですね!!

AWS re:INVENT 2017 3つの注目の新サービス

こんにちは!11/27-12/1にラスベガスで実施されてましたAWSのカンファレンスAWS re:INVENT2017
こちらのブログでもまとまった記事がありますね。

弊社としては3つの新サービスに注目しています(カオスマップとの関連的な意味で笑)。

Amazon Comprehend

Amazon Comprehend は、機械学習を使用してテキスト内で洞察と関係を見つける自然言語処理 (NLP) サービスです。Amazon Comprehend は、テキストの言語を識別し、キーフレーズ、場所、人物、ブランド、またはイベントを抽出し、テキストがどの程度肯定的か否定的かを理解し、テキストファイルのコレクションをトピックごとに自動的に整理します。Amazon Comprehend API を使用すると、お客様の声の分析、インテリジェントなドキュメント検索、ウェブアプリケーションのコンテンツパーソナライゼーションなどの幅広い用途でテキストを分析し、その結果を使用できます。

Amazon Translate

Amazon Translate は、高速で高品質な言語翻訳を手ごろな価格で提供するニューラル機械翻訳サービスです。ニューラル機械翻訳は、機械学習やディープラーニングモデルを使用して、従来の統計ベースやルールベースの翻訳アルゴリズムよりも正確で自然な翻訳を提供する言語翻訳自動化の一形態です。Amazon Translate を使用すると、大量のテキストを効率的に簡単に翻訳し、各国のユーザー向けにウェブサイトやアプリケーションをローカライズすることができます。

Amazon Transcribe

Amazon Transcribe は、開発者が音声をテキストに変換する機能をアプリケーションに簡単に追加できるようにする、自動音声認識 (ASR) サービスです。Amazon Transcribe API を使用すると、一般的な形式 (WAV、MP3 など) で Amazon Simple Storage Service (S3) に保存されたオーディオファイルを分析し、書き起こしたすべての音声のテキストファイルを返すことができます。

いずれもGoogleやMicrosoft等と同じ流れかと思いますが、このあたりの領域は最終的にどの企業が覇権を握るのか、ウォッチして行くのが楽しみな分野でもありますね。

なお、2017年12月19日に東京でダイジェストのイベントが行われるようです!
弊社担当も会場へ行くかもしれません。

また、あわせてカオスマップもアップデートしました!

追加したのは上記以外には以下のサービスです。

【カオスマップ掲載サービス一覧】