コラム

音声認識モデル(Whisper)とお試し連携

池田かずひこ

DX・新事業推進統括部の池田かずひこです。
ラグビーワールドカップ2023フランス大会終わってしまいましたね。
次回は4年後、オーストラリア開催です。絶対行きます!
4週間休みを取るかオーストラリアからのテレワークかで今から悩んでいます。


前回の「大規模言語モデルに独自データを追加して問い合わせてみた」をアップした後、架空の企業「そふとはうす池田屋」の就業規則についての回答を表示するUIを追加してみました。通勤手当の事を聞くと精勤手当の事も教えてくれます。改めてLLM(大規模言語モデル:Large Language Models)に可能性を感じました。

「大規模言語モデルに独自データを追加して問い合わせてみた」

しかし、下記のような「オーストラリアでのテレワーク勤務」については冷たい回答でした。正しくAIが回答できるように、そふとはうす池田屋の就業規則を変えてデータを与えないといけませんね。

「オーストラリアでのテレワーク勤務」については冷たい回答

OpenAIの音声認識モデルWhisperって?

OpenAI社は、自然言語での回答を生成するGPTモデル以外にも、画像生成モデル(DALL-E)や音声認識モデル(Whisper)等を提供しています。

  • OpenAI(外部サイトへ)

今回は音声認識モデル(Whisper)を使って、色々とお試しで連携してみた話を書きたいと思います。

OpenAI社のサーバーにあるWhisperはAPI経由(Whisper API)で利用することができます。利用料は、音声1分間分あたりたったの0.006ドルです。格安ですね。

また、Whisper APIを利用する以外にも、GitHubでWhisperのソースコードと学習モデルが無料で公開されています。

GitHubで公開されているオープンソースのコードを使って、自分自身で学習させることもできますが大変すぎます。
GitHubには68万時間分(つまり77年6か月分!)の音声データを学習したモデルも公開されています。それをキーやエンドポイントを設定する必要なしで無料で使えるなんて、とても幸せです。
Whisperに関わった多くの貢献者の皆さんには感謝の気持ちでいっぱいです。

かずひこちゃんに聞いてみよう!

当然、今回の記事ではGitHubで公開されている学習モデルを利用しています。

実質3行のコードで動いてしまった・・

まずは動かしてみましょう。
GitHubで提供されているパッケージを利用すると、あっという間に動いてしまいました。
音声ファイルは、以前、テキスト読み上げソフトで作成したコールセンターの応対サンプルです。イントネーションが棒読みですが、どこまで認識してくれるでしょうか。

実質3行のコードで動いてしまった

ライブラリーをインポートして、モデルのオブジェクトを作成してテキスト変換を依頼するだけです。
下記の結果が得られました。

音声テキスト変換結果:

お電話ありがとうございます。Enjoy CRM3カスタマーサポート担当の皮尻組でございます。あの、ちょっとわからないところがあるので教えてくれる?かしこまりました。どのようなご質問でしょうか?新しいパソコンにEnjoy CRM3をインストールしようとしてるんですけど、ライセンスキーがわからなくて完了できないんですよ。Enjoy CRM3のライセンスキーがご不明なため、インストールができないということですね。うん。そうなんですよ。困っちゃってます。ご契約状況を確認いたしますので、よろしければ、お客様のお名前、お電話番号をお伺いできますでしょうか?土田秀雪です。電話番号は048-XXX-XXXXです。趣味はマラソンです。ありがとうございます。土田様のご契約ですと、今年の2月9日にWeb注文にてご購入いただいております。その場合、購入後、当社からお客様にライセンスキーを含むご契約内容確認メールを送信します。ご契約内容確認メールは、お客様の元に届いておりますでしょうか?えーっと、あ、メールありました。セキュリティキーもありました。作用でございますか?そのセキュリティキーを使って進めていただければ、インストールを完了することができます。お手数ですが、お試しいただいてもよろしいでしょうか?わかりました。すぐ試すのでちょっと待っててもらえますか?かしこまりました。お待ちしております。お、インストールできました。やったー。お試しいただき、ありがとうございます。他に何かお困りな点はございますか?大丈夫です。他にはないです。ご不明な点があれば、またいつでもお問い合わせください。わかりました。ありがとう。ご利用ありがとうございました。川尻組林がご案内させていただきました。

変換結果についての感想は以下の通りです。

  • 感想1:enjoy.CRMⅢ(※)としてほしいところ、Enjoy CRM3、これは仕方ない
  • 感想2:川尻久美(当社の素敵な営業担当)としてほしいところ、皮尻組、これは川尻さんに怒られる
  • 感想3:土田久幸(当社のダンディーなマーケティング担当)としてほしいところ、土田秀雪、微妙
  • 感想4:作用でございますか?…
  • enjoy.CRMⅢは当社のコンタクトセンター向けの顧客管理システムです。

でも、全体的には良い感じです。

変換時のパラメーターを変更すると、タイムスタンプ付きでの変換もできました。

音声テキスト変換結果:(verbose=True)

[00:00.000 --> 00:02.000] お電話ありがとうございます。
[00:02.500 --> 00:07.000] Enjoy CRM3カスタマーサポート担当の皮尻組でございます。
[00:08.800 --> 00:11.600] あの、ちょっとわからないところがあるので教えてくれる?
[00:13.200 --> 00:14.300] かしこまりました。
[00:14.900 --> 00:16.800] どのようなご質問でしょうか?
[00:18.400 --> 00:22.400] 新しいパソコンにEnjoy CRM3をインストールしようとしてるんですけど、
[00:22.400 --> 00:25.000] ライセンスキーがわからなくて完了できないんですよ。
[00:26.000 --> 00:32.000] Enjoy CRM3のライセンスキーがご不明なため、インストールができないということですね。
[00:33.500 --> 00:37.000] うん。そうなんですよ。困っちゃってます。
[00:38.500 --> 00:43.500] ご契約状況を確認いたしますので、よろしければ、お客様のお名前、
[00:43.500 --> 00:46.000] お電話番号をお伺いできますでしょうか?
[00:47.500 --> 00:49.000] 土田秀雪です。
[00:49.500 --> 00:54.500] 電話番号は048-XXX-XXXXです。趣味はマラソンです。

ドキュメントには、プロンプトによりテキスト変換の指示が可能とあり、下記を追加してみましたが、効果はありませんでした。

プロンプトで変換を指示してみました。

今後に期待しましょう。

現状、OpenAI社からは、学習量(パラメーター)が異なる5つのモデル(tiny,base,small,medium,large)が提供されていて、学習量が小さいモデルは精度が低めだが変換処理時間が速く、学習量が大きいモデルは精度が高いが変換処理時間がかかるみたいです。
ただし、今回利用した音声ファイルの変換時、モデルをsmallからlargeまで変化させましたが、結果に違いは見られませんでした。

Azure OpenAIにもWhisperが来たぁ~

Microsoftからも2023年9月にAzure OpenAI Whisperがパブリックプレビューとして公開されました。
業務利用を想定している当社としては、「責任のあるAI」と謳っているMicrosoft Azure環境でWhisperが利用できるのを待っていました。また、Azure OpenAIでは、一番大きなモデル(Whisper v2-large)が利用できるようなっています。

Azure OpenAI Whisperを使って、前述したお試しの時と同じ音声ファイルをテキスト変換してみました。
変換結果の差は以下の通りです。

  • Azure OpenAI Whisperの結果 1:enjoy.CRMⅢとしてほしいところ、エンジョイCRM3
  • Azure OpenAI Whisperの結果 2:川尻久美(当社の素敵な営業担当)を川尻久美偶然の一致か・・
  • Azure OpenAI Whisperの結果 3:土田久幸(当社のダンディーなマーケティング担当)を土田久幸これも偶然?
  • Azure OpenAI Whisperの結果 4:作業でございますか?・・Azure OpenAI Whisperお前もか・・

若干精度の違いがあるような気がしました。

Microsoft Azure環境で利用できるWhisperのモデルは、以下の2つのルートからの利用方法があると紹介されています。

  • Azure AI Speechモデル:リアルタイムでの音声テキスト変換や話者認識や単語登録(?)等のカスタマイズ
  • Azure OpenAI Serviceを介したWhisperモデル:音声ファイルを高速にテキスト変換

今回は動作確認が取れた「Azure OpenAI Serviceを介したWhisperモデル」のルート(以降、Whisperモデルの表記はこちらを指します)をご紹介します。

Whisperモデルは、以下のような利用時に最適と紹介されています。

  • 音声ファイルを一度に一つずつすばやく文字起こしする
  • 他の言語の音声を英語に翻訳する
  • 出力をガイドするためのプロンプトをモデルに提供する
  • サポートされているファイル形式:mp3、mp4、mpweg、mpga、m4a、wav、webm

Azure OpenAI Whisperの実力を見せてもらおうか?

Azure上のOpenAIにWhisperが仲間入りしたということは、前回までのテックブログでも利用していた、ノーコード・ローコードプラットフォームのPower Platformからも簡単に利用できるということです!

今回も、動作確認用のデモアプリをPower Appsのキャンバスアプリを使って作成してみました。
想定するデモアプリの利用シナリオは、「留守番電話に保守依頼が録音されたファイルから、どのような対応が必要となるかを提示してくれるもの」としました。
また、「パソコンのマイク入力からの音声をテキスト変換するルート」も追加してみました。

動作確認用のデモアプリをPower Appsのキャンバスアプリを使って作成

Whisperモデルにより音声テキスト変換(留守録ファイル変換ボタン)を行い、その後、テキスト変換した結果をGPTモデルに渡して必要な対応(ご依頼解析ボタン)を提示してもらいます。

Whisperモデルにより音声テキスト変換

作成時間は約3時間でできちゃいました!さすがノーコード・ローコードプラットフォームです。

実験:活舌の悪いお客様からの保守依頼

下記のような文章をパソコンのマイクから録音して55秒の音声ファイル(MP3形式:ファイルサイズ:774KB:ビットレート:113kbps)を作成してみました。

読み上げた文章:

もしもしenjoy.CRMⅢのコールセンターさんでしょうか?
そふとはうす池田屋の総務のものなんですが、最近、プリンターが頻繁に紙詰まりするようになってしまったので修理をお願いしたいんですけれども?
できれば11月の10日金曜日の15時以降でお願いできないでしょうか?
住所は埼玉県蕨市中央1丁目のXX番になります。
電話番号は048XXXXXXXです。
あと、プリンター購入してから20年以上経っているので、そろそろ買い替えたいなと思っているんですよね。
当日カタログを持ってきていただけないでしょうか?
では、よろしくお願いします。

「留守録ファイル変換」ボタンを押下してWhisperに文字起こししてもらいました。
文字起こしに要した時間は5秒、変換結果文字数は272文字でした。

「留守録ファイル変換」ボタンを押下してWhisperに文字起こししてもらいました。

音声テキスト変換結果:

もしもしエンジョイCRM3のコールセンターさんでしょうかソフトハウス池田屋の総務のものなんですが最近プリンターが頻繁に紙詰まりするようになってしまったので修理をお願いしたいんですけれどもできれば11月の10日金曜日の15時以降でお願いできないでしょうか住所は埼玉県わらび市中央1丁目のXX番になります電話番号は048XXXXXXXですあとプリンター購入してから20年以上経っているのでそろそろ買い替えたいなと思っているんですよね当日カタログを持ってきていただけないでしょうかではよろしくお願いします

辞書登録をしていないので、「enjoy.CRMⅢ」が「エンジョイ CRM3」となるのは仕方ないですね。「蕨市」もダメなのね。半角スペースがあちこちに追加されているのは僕の活舌の悪さからでしょうか?
でも、全体的には良い感じです。

続いて、「ご依頼解析」ボタンを押して依頼内容を解析してもらいます。

「ご依頼解析」ボタンを押して依頼内容を解析

これも、良い感じですね。録音ファイルを全部聞く時間より早く内容を確認できました!

ご依頼内容解析結果:

【保守依頼内容】
プリンターの修理を希望している。また、プリンターの購入から20年以上経っているため、当日カタログを持参してもらいたい旨を伝えている。
【お客様連絡先】
氏名:ソフトハウス池田屋総務、住所:埼玉県わらび市中央1丁目のXX番、電話番号:048XXXXXXX
【保守希望日時】
11月10日金曜日の15時以降に修理を希望している。
【その他ご要望等】
当日カタログを持参してもらいたい旨を伝えている。

マイク入力のルートも作ったので、せっかくですから、カラオケを流しつつ「森のくまさん」を熱唱してみました。

カラオケを流しつつ「森のくまさん」を熱唱してみました。

前奏が「♪~」となるのは芸が細かい。長屋の熊さんに森で出会った感じです。
ただし、ご依頼内容については冷静に分析されてしまいました。

コンタクトセンター業務でも利用可能な感触が得られた

Power Appsのキャンバスアプリとの組み合わせだけでもWhisperの可能性を感じます。
当社のコンタクトセンター向けの顧客管理システム「enjoy.CRMⅢ」と組み合わせてみると、もっとステキになるかな?と思ったので、連携してみました。

「電話系システムが生成した通話録音ファイルを入力⇒音声テキスト変換⇒要約」を通常オペレーターさんが利用している画面上で実現できそうです。
(正式な機能としてenjoy.CRMⅢに追加するには、もうちょっと頑張らなければいけません)

お客様からは、「音声ファイルを再生して、聞いた内容をCRMに応対履歴として登録するのが大変なんだよねぇ。」と、よくお聞きしているので、1~2分でこの作業が行えるのは画期的です!

通話録音画面

音声データをいろいろ変えてみた

お客様にご協力いただいて、お客様環境で実際の通話録音ファイルを処理してみました。
1分37秒の通話録音ファイル(Wave形式)が10秒で変換(変換結果文字数451文字)、6分9秒の通話録音ファイル(Wave形式)が29秒で変換(変換結果文字数2016文字)できました。

高速テキスト変換が実感できます。

ビットレートなどの条件によるのか、パソコンでマイク入力したファイルとは異なり、実際の通話録音ファイルでは以下のような特徴がありました。

  • 句点、読点が付与
  • 質問部分には、?が自動付与
  • 住所、郵便番号を整形
    ではお電話番号をお願いいたします。
    はい。011-261-XXXX。
    はい。ではご住所の郵便番号をお願いいたします。
    はい。060-XXXX。
  • 意味のない言葉は除去赤字部分は、テキスト変換されていない
    はい。お電話ありがとうございます。エンジョイCRM3カスタマーサポート担当の川尻久美でございます。
    (え~っと)すいません。ホームページ見たんですけれども、(うぅ~ん)カタログって送っていただけますか?
    はい。お送りさせていただきます。お客様、このたびはどのサイトをご覧いただいたのでしょうか?
    (あぁ~)ソフトモヒカンのおじさん画像がでてるサイトですかね。

ネット上でも「余計な半角スペースが入る」とか、「句読点がつかない」など様々な実験結果が紹介されていますが、どのような仕様でテキストを生成しているのかは謎でした。

Azure AI Speechモデルへの期待

今回、紹介できなかったAzure AI Speechモデルでは、「リアルタイムでのテキスト変換」や「話者認識」等のコンタクトセンターでの利活用に最適な機能があります。
Microsoftのサイトには、以下のような記載があり、今後が楽しみです。

  • 25MB(最大1GB)を超えるファイルの文字起こし(Azure OpenAIのWhisperモデルのファイルサイズの制限は25MBです)
  • 音声ファイルの大きなバッチの文字起こし
  • 会話に参加している異なる話者を区別するためのダイアライゼーション(音声サービスは、文字起こしされた音声の特定の部分を話していた話者に関する情報を提供します。Azure OpenAIを介したWhisperモデルでは、ダイアライゼーションはサポートされていません)
  • ワードレベルのタイムスタンプ
  • サポートされているファイル形式:mp3、wav、ogg
  • シナリオの精度を向上させるためのWhisperの基本モデルのカスタマイズ(近日公開予定)

おわりに

OpenAIと言えば、ChatGPTの印象が強いと思いますが、今回のご紹介でWhisperにも可能性を感じるなぁと思っていただければ幸いです。
Azure OpenAIのWhisperは、まだパブリックプレビューの段階ですが、近々、一般公開版(GA:General Availability)されると思うので、ビジネス活用の準備を進めて行きたいと思います。

OKIソフトウェアでは、従来より保有するソフトウェア技術と幅広い業種・業態知識とOpenAI等の新たな技術を組み合わせて、お客様のご支援をさせていただいています。
今後ともご愛顧のほど、よろしくお願いいたします。

  • Microsoft、Azure、Dynamics 365、Power Platform、PowerPoint、その他のマイクロソフト製品およびサービスは、米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
  • OpenAI、Whisper、その他の米OpenAI社の製品およびサービスは、米OpenAI社の米国およびその他の国における登録商標または商標です。(日本では出願中であり、現在審査中です。)
  • GitHubは、GitHub Incの商標または登録商標です。
  • enjoy.CRMは、株式会社OKIソフトウェアの日本における登録商標です。
  • その他本ページに表示または記載されている各社の会社名・ロゴ・サービス名・商品名等はすべて各社の商標または登録商標です。
  • YouTube

お問い合わせ

お問い合わせ