https://d226lax1qjow5r.cloudfront.net/blog/blogposts/extending-nexmo-streaming-transcription-dr/E_Extending-Nexmo_Steaming-Transcript_1200x600.jpg

ネクスモの拡張:ストリーミング・トランスクリプションの比較

最終更新日 May 10, 2021

所要時間:1 分

コミュニケーションの世界では、言葉が重要であり、適切な言葉を得ることは非常に重要です。音声通話の書き起こしは、企業が営業やサポートの電話から内容の新たな傾向を理解するのに役立ちます。

テープ起こしとは、音声による会話を文字に起こす作業である。以前は、人間が録音を聞き、手作業で文字を打ち込んでいました。このやり方は現在でも残っている。現在では自動化されたサービスも登場し、ソフトウェア開発者は音声ファイルをサービスに送信することで、より迅速な結果を得ることができます。

この作業だけでも素晴らしい洞察が得られますが、私が特に注目しているのは、リアルタイムの情報が営業チームやサポートチームに別のレベルの詳細を提供できるストリーミング・トランスクリプションです。

概要

この記事では、4つの主要クラウドプロバイダーのストリーミング・トランスクリプション・サービスの比較と概要をご紹介します: Amazon Transcribe, Azure Cognitive Speech Service, Google Cloud Speech-to-Textおよび IBM Watson Speech-to-Text.

使用方法 Nexmo Voice APIとWebSocketを使う。NexmoのVoice APIとWebSocketを使って、私は携帯電話から音声通話に接続し、音声をストリーミングしてサービスをテストした。その過程で、機能、使いやすさ、正確さ、コストなどについていくつかメモを取った。

精度

テープ起こしサービスを選ぶ際、より重要な要素のひとつがその正確さです。不正確な情報を持っていると、どんなデータも信用されなくなります。

携帯電話を使って 8kHz携帯電話を使ったサンプルレートを使うこともできる。 16kHzを使うこともできるが、場合によっては精度が落ちることもある。様々なフレーズを使い、比較的平均的な会話速度で適度な音量で話した。また、部屋は周囲の雑音を取り除くのに十分なほど静かだった。

どのサービスも私が使ったフレーズを問題なく書き起こしてくれたが、私の話し方次第なところもあった。残念ながら、どのサービスも発音不足には苦労する。

そうでなければ、これらのサービスのいずれかに、あなたのトランスクリプションを処理するために合理的な自信を持って感じることができます。

「ドアに近づくな

  • IBM Watson Speech-to-Text - 90% (どんなにはっきり話しても "stand "にならなかった。)

  • Azure Cognitive Speech Service - 100

  • Google Cloud Speech-to-Text - 100

  • Amazon Transcribe - 100

「よく振ってからお召し上がりください

  • IBM Watson Speech-to-Text - 100

  • Azure Cognitive Speech Service - 100

  • Google Cloud Speech-to-Text - 100

  • Amazon Transcribe - 100

「ピーター・パイパーがピーマンのピクルスを1ペック収穫した。

  • IBM Watson Speech-to-Text - 100

  • Azure Cognitive Speech Service - 100

  • Google Cloud Speech-to-Text - 100

  • Amazon Transcribe - 100

特徴

ほとんどのサービスの機能セットは非常に似ている:

  • 精度の高い機械学習を採用

  • 最適化のためのカスタムモデル

  • オーディオファイルとストリーミング

  • 固有名詞の文脈フォーマット

  • 句読点のサポート

言語サポート

Google Cloud Speech-to-Textは、対応言語数が120と圧倒的に多く、ほとんどのケースで言語を自動検出できます。次に近い言語サポートは Azure Cognitive Speech Serviceで30、そして IBM Watson Speech-to-Textで15。 Amazon Transcribeは、ストリーミング文字起こしに利用できる言語が5つしかなく、最も制限されています(音声ファイルではもっと利用できます)。

使いやすさ

各プロバイダーには、成功への独自の道がある。どのプロバイダーも様々な形式でスタートガイドを提供している。しかし、それらは音声ファイルを送信するか、マイク入力をキャプチャするためのものであることが多い。マイク入力はNexmo WebSocketで使用する必要があるストリーミング方法ですが、不必要なフロントエンド・コードが追加されています。

グーグル・クラウド音声合成

Google SDKの実装は簡単で、提供されたSDKとサービス・アカウント・ユーザーに提供されたGoogle認証ファイルを使用して SpeechClientを作成することで簡単に実装できました。

には SpeechClientというメソッドを提供する。 streamingRecognizeというメソッドを提供する。

const client = new speech.SpeechClient();

  let request ={
    config: {
      encoding: 'LINEAR16',
      sampleRateHertz: 8000,
      languageCode: 'en-US'
    },
    interimResults: false
  };

  const recognizeStream = client
  .streamingRecognize(request)
  .on('error', console.error)
  .on('data', data => {
    console.dir(data, {depth: null});
  });

グーグルのシンプルさは、他の競合他社よりも優位に立っている。わずかな労力で立ち上げることができ、私にとっては大きな勝利だ。

Google クラウド音声合成のドキュメント

アジュール/IBM

IBMもAzureも言語固有のSDKを提供し、使い始めるためのドキュメントをたくさん用意しているが、APIダイレクト・コールを実装するのは簡単だ。これらのサービスはどちらも、APIルートに wss://プロトコルでAPIルートに接続し、キーを提供するだけで利用できる。

Azure Cognitive Speech Service(アジュール・コグニティブ・スピーチ・サービス

wss://region.stt.speech.microsoft.com/speech/recognition/interactive/cognitiveservices/v1?format=simple&language=LANG_CODE

IBM ワトソン音声合成

wss://stream.watsonplatform.net/speech-to-text/api/v1/recognize?model=langage_model

追加で提供されるヘッダーもあるが、各サービスのドキュメントが有益なリソースであることがわかるだろう。

アマゾントランスクライブ

正直なところ、AWSの実装が一番難しかった。ドキュメントにはほとんど例がなく、SDKはストリーミングサービスを全くサポートしていないようだった。私が最初にAmazon Transcribeの統合を構築しようとしたとき、HTTP/2だけが利用可能なプロトコルであり、サーバーに送信されるすべてのリクエストに署名する必要がありました。AWSの一般的な使い方に少し慣れていない私にとって、これはかなり厄介なことでした。

この物語が素晴らしい展開を見せるのは、デベロッパー・リレーションズがリードする場面だ、 ブランドン・ウェストが介入し、WebSocket接続を使ったサンプルコードを書いてくれたことです。このサンプルコードによって、よりアクセスしやすくなったが、一般的な承認プロセスとコールサインによって、Amazon Transcribeの実装は一般的に少し難しくなっている。

ここでは WebSocketNodeパッケージを使用し、接続を作成するために署名されたURLを作成した。

  let url = v4.createPresignedURL(
    'GET',
    `transcribestreaming.${process.env.AWS_REGION}.amazonaws.com:8443`,
    '/stream-transcription-websocket',
    'transcribe',
    crypto.createHash('sha256').update('', 'utf8').digest('hex'), {
        'key': process.env.AWS_ACCESS_KEY_ID,
        'secret': process.env.AWS_SECRET_ACCESS_KEY,
        'protocol': 'wss',
        'expires': 15,
        'region': process.env.AWS_REGION,
        'query': `language-code=${process.env.LANG_CODE}&media-encoding=pcm&sample-rate=${process.env.SAMPLE_RATE}`
    }
  );

  let socket = new WebSocket(url);

Amazon Transcribeは素晴らしいサービスだが、もしあなたが使い慣れないものであれば、学習曲線は難しいかもしれない。

Amazon Transcribe ドキュメンテーション

コスト

すべてのサービスプロバイダーは、ライトまたは無料の段階を提供しています。基本的な費用は、書き起こした音声時間の量によります。各プロバイダーは異なる時間単位を使用しているため、以下の表ではコストの違いを正確に理解できるように正規化しています。

Provider Free Tier Cost Normalized Cost
Amazon Transcribe 60 min/month for 12 months $0.006/~10 seconds $0.036/minute
Azure Cognitive Speech Service 5 audio hours free per month $1/audio hour $0.016/minute
Google Cloud Speech-to-Text 60 minutes free $0.006/15 seconds $0.024/minute
IBM Watson Speech-to-Text 500 Minutes per Month $0.02/minute $0.02/minute

総括

ストリーミングトランスクリプションは、リアルタイムで洞察を提供する素晴らしい方法です。主要な4つのクラウドプロバイダーはそれぞれ、信頼性が高く、正確な音声読み上げサービスを提供する優れた製品を持っています。Nexmoを音声ストリームとして使用することで、顧客により深いコミュニケーション体験を提供することができます。

Google Speech-to-Textをお勧めします。価格競争力があり、サービスは堅牢で信頼できる。セットアップも簡単で、すぐに使い始めることができる。

Nexmo Extendチームは、これらのサービスのいずれか、またはすべてを試してみたい方のために、サンプルコードを作成しました。

シェア:

https://a.storyblok.com/f/270183/384x384/444c073b5e/kellyjandrews.png
Kelly J Andrews元チームメンバー

ケリー・J・アンドリュースはネクスモの開発者支持者であり、5歳で初めてBASICを使い、30年以上コンピュータをいじってきた。

1997年に初めてウェブページを作り、初めてJavaScriptを試してみて初めて、彼は真の天職を見つけた。ケリーは今、JavaScript、テスト可能なコード、そして迅速なデリバリーのために戦っている。

カラオケを歌ったり、マジックを披露したり、カブスやファイティング・アイリッシュを応援したり。