Google Cloud Platformを活用して非構造化音声言語データをニアリアルタイムでテキスト化する

重要:個人情報や機密情報の使用に関する注意喚起(必ずお読みください)
 当検証で紹介している技術やサービスの使用は、読者の皆様自身の判断と責任で行ってください。特に、個人情報や機密情報を含むデータの取り扱いについては、最大限の注意を払い、適切なセキュリティ対策を講じることが不可欠です。
 検証や実際の利用を行う際には、常にプライバシー保護の法律、規制、およびベストプラクティスを遵守するよう心掛けてください。また、第三者のデータを使用する場合は、必要な同意を得ること、及びそのデータの使用が法律に準じていることを確認することが重要です。
 本ブログや筆者、所属する団体は、紹介する技術を用いて行われるいかなる活動から生じる直接的または間接的な損害に対して、責任を負いかねます。技術を使用することによって生じ得るリスクを理解し、自己の責任で慎重にご活用ください。
 ご不明点や懸念がある場合は、クラウドベンダーや専門家に相談することをお勧めします。
 当検証の情報を活用することで、読者の皆様が新たな知識やスキルを安全に身に付け、ビジネスでの活用をすすめていただければ幸いです。
 

検証概要

 
 今回の検証では、Google Cloud Platformを活用して、音声データをほぼリアルタイムでテキストデータに変換するシステムのサンプルを実装します。
 例えば、コールセンターのシステムが通話終了時に録音された通話データを分析環境に自動で転送される運用であることを想定します。分析基盤はこの音声データの到着をトリガーとして、データの確認、データレイクへの保存、そして通話内容のテキスト化を行います。
 テキスト化されたデータは、通話終了後、数秒から数分で活用可能になります。これにより、AI機能を用いて通話の要約作成、センチメント分析、キーワードの抽出と分析を行い、重要なキーワードが言及された場合には迅速に識別し、適切な対応をとることができます。(参考
図1.本検証の対象領域
図1.本検証の対象領域
 
 今回の検証において注視した技術は、「ほぼリアルタイム」のデータ処理を実現するためのFunction as a Service (FaaS)と、音声をテキストに変換する技術です。FaaSはサーバーレスアーキテクチャの一形態で、事前にサーバーインスタンスを立ち上げておく必要がなく、関数の実行時間のみで課金されるため、効率的かつコスト効果の高い運用が可能です。過去には実行可能な関数の最大処理時間が数十分に限定されていましたが、現在では数時間にわたる長時間の処理をサポートするサービスも登場しています。また、音声をテキスト化する技術についても、主要なクラウドサービスベンダーから多様なソリューションが提供されています。これらの技術を検証し、プロジェクトに最適なツールを選定することが重要です。FaaSを利用することで、リソースの自動スケーリングと運用の簡素化が可能になり、音声をテキスト化するサービスの統合により、通話データなどの迅速な解析と活用を実現することが可能となります。
 
処理フロー
図2.処理フロー
図2.処理フロー
①Cloud Storageの受信用バケットが音声データを受信します。
②Cloud Functionは、①をトリガーにPythonのFunctionを起動します。
③音声ファイルをチェックし、データレイクにコピーします。(今回はチェックなし)
④データレイクの音声ファイルをSpeech To Textでテキストに変換し、データレイクに格納します。
 

検証内容

 

入力データ

 
 次の2種類の音声データを使用します。
No内容時間サイズ形式サンプル レート文字数 (変換後)
1夏目漱石「吾輩は猫である」の冒頭部分約3分1.5MBMP316000Hz915
2DXに関するビジネス書の一部約3分1.4MBMP316000Hz811

処理内容

 
  1. 事前に、データ受信用バケット、データレイク用バケットとフォルダを用意します。
  1. Cloud Functionに関数を作成します。
    1. バケットにファイルが置かれたことを示すトリガータイプ(google.cloud.storage.object.v1.finalized)、受信用をバケットを指定します。
    2. 次のファイルをソースに指定します。(一部環境に合わせて変更してください。)
      1. 今回実装したサンプルコード
        • requirements.txt(必要なライブラリの定義)
          • main.py(ソースコード)
            •  

    出力データ

     

    受信用バケットの状態

     
     

    データレイクのバケットの状態

     
     

    変換後テキスト内容

     
    1. 吾輩は猫である
      1.  
    1. DX関連書籍(著作権保護のため、抜粋しキーワードのみ記載)
       

      検証結果

       

      変換の精度について

       
       変換結果は前述のとおりです。実際の音声データと変換されたテキストを照合し、次のような結果となりました。
      データ誤変換誤変換の内容
      吾輩は猫である10ヶ所・「書生(正)」→「女性(誤)」などの似た言葉 ・江戸弁のような独特の言い回し ・「獰悪」など現在では使いそうもない熟語 ・現代での差別用語(そういう配慮がなされているのかは不明)
      DX関連書籍5ヶ所・人名 ・「第2は(正)」→「第2話(誤)」などの似た言葉 ・「抽象化(正)」→「重症化(誤)」などの似た言葉(音声は「じゅうしょう」とも聞こえる)
       
       検証結果からは、音声からテキストへの変換がかなり高い精度で行われていることが確認できました。致命的な変換エラーは検証範囲内では見当たらなかったようです。
       この高精度な変換技術を活用することで、例えば速報性が求められる状況において、音声の変換データを初期の情報ソースとして使用することが可能です。その後、さらなる精度向上のために人の手による確認と修正を加えることもできます。このアプローチにより、迅速かつ正確な情報提供が可能となり、音声データの活用範囲を大きく広げることが可能です。
       一方、話者の速度や訛りが変換精度に与える影響については、今回の検証ではカバーされていません。これは、特定の実務上のシナリオにおける技術の適用可能性を評価する上で重要な検討事項となります。

      処理性能について

       
      音声からテキストへの変換に要した時間は次の通りです。
      データ音声時間変換に要した時間
      吾輩は猫である3分9秒43秒
      DX関連書籍2分57秒39秒
       検証から、音声データのテキストへの変換処理が、実際の音声の長さに比べて顕著に速い速度で完了していることが明らかになりました。
       また、大量の変換リクエストが集中したとしても、FaaSの自動スケーリング機能により、ピーク時のリクエスト増加に対する特別な対策を講じる必要がありません。利用者は、システムの性能について心配することなく、一貫して迅速な変換サービスを提供できることが期待できます。

      検証結果を踏まえた見解

       
       現時点での音声からテキストへの変換は高い精度で実施されていますが、実際の運用環境においては、様々な話者の特性(話す速度、訛り、専門用語の使用など)に対応するための継続的な検証とシステムの改善が必要であるといえます。また、100%完全な変換は極めて困難であるため、必要に応じて運用担当者など人手による修正・補足を行うことも重要です。