はじめに / Introduction

この記事はその3の続きです。
評価結果だけ知りたい方はこの記事だけでOKです。

This page picks up where I left off.
Please read it if you want to know backbround on this.
You know evaluation results just in this article.

精度評価結果 / results of accuracy evaluation

ja-JP

今北産業

  • 「日本人が英語で会議する」音声認識を使いたい
  • Google、Microsoft、AWSをWord Error Rateで比較することにした
  • Pythonで書かせろ

比較してみた

前回までのなんやかんやで、ようやく3サービス同じ土俵で比較できるようになりました。
2つの音声について比較した結果が以下です。

音声1: 総単語数 4897 words

サービス WER Insert Delete Substitution Correct
Google 0.511741 569 992 945 2979
Microsoft 0.419440 695 488 871 3538
Amazon 0.498060 797 614 1028 3274


音声2: 総単語数 2593 words

サービス WER Insert Delete Substitution Correct
Google 0.644427 235 497 939 1157
Microsoft 0.659082 889 144 676 1773
Amazon 0.678365 684 139 936 1518

なお、条件は以下の通り。

  • 1時間程度のミーティング音声
    • ミーティングは電話会議
    • 対象者にピンマイクをつけて個別に録音
    • 録音音声には周囲の発言者や電話相手の音声が多少のっている
  • 正解は対象者の発言のみ抽出

考察

WERが小さい順(= 成績が良い順)に並べると、こんな感じでした。

  • 音声1: Microsoft < Amazon < Google
  • 音声2: Google < Microsoft < Amazon

結果を見る限り、Microsoftの成績がいい感じでした。実際の出力を見ても、一番それっぽいのはMicrosoftだった気がします。
Errorが少なくCorrectが多いのもそうですが、Error扱いされたもののうち意味に大きな影響を与えないもの(e.g. "gets"が"get"と認識される)が多かったです。 特に音声1の結果は圧倒的ですね。。。

音声2の方が全体的に認識率が低いのは、1と2で対象者が違い、2の方が発音に強く日本人訛りが残っていたからです。
いわゆる日本人英語にはGoogleが強さを発揮している感じですね。
ただDelete Errorが多く、他に比べてノイズや音量不足に弱いのかなと考えています。

Amazonについては、良くも悪くも音声に忠実な認識をしてる印象です。
間を持たせるためのuhとかahといった意味のない音もちゃんと拾ってしまっていました。
ただ、人名には他より多少強かった印象です。

全体に通して言えることは、やっぱり固有名詞には弱いですね。
各サービス単語登録のようなカスタム機能があるのですが、読み方までは登録できないので物足りなかったです。
発音記号で登録とかできるようになると面白いかも。
あと、日本語が混じるとダメです。GoogleだとAlternate languageが設定できますが、この長さになるとレスポンスサイズがgRPCのサイズ制限である4MBを超えてしまいました。音声の分割はスキル不足で手を付けてないです。
この辺はStream処理でやるようにすれば(認識率含めて)変わるかもしれないですね。

最後に

複数記事に渡って音声認識を試した結果をつらつらと書きました。
なお、最終的には音声2の状況(= 日本人英語)が多いと判断し、Googleを使っています。

en-US

Previously on articles

  • I want to Speech to Text for English by Japanese.
  • I will compare GCP, Azure, and AWS by Word Error Rate.
  • Let me write by Python.

Try evaluating

We finally can be comparing 3 service due to some preparation in previous articles. There are results about 2 inputs in below.

Input 1: there are 4897 words in the answer.

Service WER Insert Delete Substitution Correct
GCP 0.511741 569 992 945 2979
Azure 0.419440 695 488 871 3538
AWS 0.498060 797 614 1028 3274


Input 2: there are 2593 words in the answer.

Service WER Insert Delete Substitution Correct
GCP 0.644427 235 497 939 1157
Azure 0.659082 889 144 676 1773
AWS 0.678365 684 139 936 1518

Detail condition is,

  • Each input duration is almost 1 hour.
    • Each is a teleconference.
    • A pinned microphone puts on a target people.
    • Noise and others voices are including every input a little.
  • Every answer extracts only target people saying.

Discussion

Results are sorted ascending WER (= better score).

  • Input 1: Azure < AWS < GCP
  • Input 2: GCP < Azure < AWS

As results, Azure is the best score. I feel it is more natural than others by visual confirmation.
It is not only a few errors and many correct but also errors are not matter to catch the meaning of sentences roughly (e.g. "gets" is transcribes "get").
Especially, Input 1's result is a sledgehammer.

Each Input 2's WER is higher than Input 1's due to an Input 2's target people has a strong Japanese accent.
I think GCP is the better choice for Japanese English than others but, it has many Delete error, so I feel GCP is weaker noise and silent voice than others.

AWS's is quite real output for better or worse.
For example, it contains words that not having meaning words but just exist to keep communication like uh or ah. But, it is more correct about people's name.

Among 3 services, almost proper nouns are not transcribed. They have a custom list function putting in any given words, but it can't put in pronunciations.
It may be interesting that the International Phonetic Alphabet (IPA) uses to put in pronunciations.
And, they can't transcribe Japanese mixed part.
In the case of GCP, we can set Alternate-language-code but we can't get a result because it is too big to use gRPC (over 4MB).
It may be able to get a result to use Stream function.

Finally

I have written results trying Speech to Text services.
Now, I use GCP because almost all of my target is Japanese English speaker.

関連記事

この記事へのコメント

まだコメントはありません
+1
18
@tmyoasの技術ブログ
このエントリーをはてなブックマークに追加