DX・新事業推進統括部の池田かずひこです。
ラグビーワールドカップ2023フランス大会終わってしまいましたね。
次回は4年後、オーストラリア開催です。絶対行きます!
4週間休みを取るかオーストラリアからのテレワークかで今から悩んでいます。
前回の「大規模言語モデルに独自データを追加して問い合わせてみた」をアップした後、架空の企業「そふとはうす池田屋」の就業規則についての回答を表示するUIを追加してみました。通勤手当の事を聞くと精勤手当の事も教えてくれます。改めてLLM(大規模言語モデル:Large Language Models)に可能性を感じました。
しかし、下記のような「オーストラリアでのテレワーク勤務」については冷たい回答でした。正しくAIが回答できるように、そふとはうす池田屋の就業規則を変えてデータを与えないといけませんね。
OpenAI社は、自然言語での回答を生成するGPTモデル以外にも、画像生成モデル(DALL-E)や音声認識モデル(Whisper)等を提供しています。
今回は音声認識モデル(Whisper)を使って、色々とお試しで連携してみた話を書きたいと思います。
OpenAI社のサーバーにあるWhisperはAPI経由(Whisper API)で利用することができます。利用料は、音声1分間分あたりたったの0.006ドルです。格安ですね。
また、Whisper APIを利用する以外にも、GitHubでWhisperのソースコードと学習モデルが無料で公開されています。
GitHubで公開されているオープンソースのコードを使って、自分自身で学習させることもできますが大変すぎます。
GitHubには68万時間分(つまり77年6か月分!)の音声データを学習したモデルも公開されています。それをキーやエンドポイントを設定する必要なしで無料で使えるなんて、とても幸せです。
Whisperに関わった多くの貢献者の皆さんには感謝の気持ちでいっぱいです。
当然、今回の記事ではGitHubで公開されている学習モデルを利用しています。
まずは動かしてみましょう。
GitHubで提供されているパッケージを利用すると、あっという間に動いてしまいました。
音声ファイルは、以前、テキスト読み上げソフトで作成したコールセンターの応対サンプルです。イントネーションが棒読みですが、どこまで認識してくれるでしょうか。
ライブラリーをインポートして、モデルのオブジェクトを作成してテキスト変換を依頼するだけです。
下記の結果が得られました。
音声テキスト変換結果:
お電話ありがとうございます。Enjoy CRM3カスタマーサポート担当の皮尻組でございます。あの、ちょっとわからないところがあるので教えてくれる?かしこまりました。どのようなご質問でしょうか?新しいパソコンにEnjoy CRM3をインストールしようとしてるんですけど、ライセンスキーがわからなくて完了できないんですよ。Enjoy CRM3のライセンスキーがご不明なため、インストールができないということですね。うん。そうなんですよ。困っちゃってます。ご契約状況を確認いたしますので、よろしければ、お客様のお名前、お電話番号をお伺いできますでしょうか?土田秀雪です。電話番号は048-XXX-XXXXです。趣味はマラソンです。ありがとうございます。土田様のご契約ですと、今年の2月9日にWeb注文にてご購入いただいております。その場合、購入後、当社からお客様にライセンスキーを含むご契約内容確認メールを送信します。ご契約内容確認メールは、お客様の元に届いておりますでしょうか?えーっと、あ、メールありました。セキュリティキーもありました。作用でございますか?そのセキュリティキーを使って進めていただければ、インストールを完了することができます。お手数ですが、お試しいただいてもよろしいでしょうか?わかりました。すぐ試すのでちょっと待っててもらえますか?かしこまりました。お待ちしております。お、インストールできました。やったー。お試しいただき、ありがとうございます。他に何かお困りな点はございますか?大丈夫です。他にはないです。ご不明な点があれば、またいつでもお問い合わせください。わかりました。ありがとう。ご利用ありがとうございました。川尻組林がご案内させていただきました。
変換結果についての感想は以下の通りです。
でも、全体的には良い感じです。
変換時のパラメーターを変更すると、タイムスタンプ付きでの変換もできました。
音声テキスト変換結果:(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まで変化させましたが、結果に違いは見られませんでした。
Microsoftからも2023年9月にAzure OpenAI Whisperがパブリックプレビューとして公開されました。
業務利用を想定している当社としては、「責任のあるAI」と謳っているMicrosoft Azure環境でWhisperが利用できるのを待っていました。また、Azure OpenAIでは、一番大きなモデル(Whisper v2-large)が利用できるようなっています。
Azure OpenAI Whisperを使って、前述したお試しの時と同じ音声ファイルをテキスト変換してみました。
変換結果の差は以下の通りです。
若干精度の違いがあるような気がしました。
Microsoft Azure環境で利用できるWhisperのモデルは、以下の2つのルートからの利用方法があると紹介されています。
今回は動作確認が取れた「Azure OpenAI Serviceを介したWhisperモデル」のルート(以降、Whisperモデルの表記はこちらを指します)をご紹介します。
Whisperモデルは、以下のような利用時に最適と紹介されています。
Azure上のOpenAIにWhisperが仲間入りしたということは、前回までのテックブログでも利用していた、ノーコード・ローコードプラットフォームのPower Platformからも簡単に利用できるということです!
今回も、動作確認用のデモアプリをPower Appsのキャンバスアプリを使って作成してみました。
想定するデモアプリの利用シナリオは、「留守番電話に保守依頼が録音されたファイルから、どのような対応が必要となるかを提示してくれるもの」としました。
また、「パソコンのマイク入力からの音声をテキスト変換するルート」も追加してみました。
Whisperモデルにより音声テキスト変換(留守録ファイル変換ボタン)を行い、その後、テキスト変換した結果をGPTモデルに渡して必要な対応(ご依頼解析ボタン)を提示してもらいます。
作成時間は約3時間でできちゃいました!さすがノーコード・ローコードプラットフォームです。
下記のような文章をパソコンのマイクから録音して55秒の音声ファイル(MP3形式:ファイルサイズ:774KB:ビットレート:113kbps)を作成してみました。
読み上げた文章:
もしもしenjoy.CRMⅢのコールセンターさんでしょうか?
そふとはうす池田屋の総務のものなんですが、最近、プリンターが頻繁に紙詰まりするようになってしまったので修理をお願いしたいんですけれども?
できれば11月の10日金曜日の15時以降でお願いできないでしょうか?
住所は埼玉県蕨市中央1丁目のXX番になります。
電話番号は048XXXXXXXです。
あと、プリンター購入してから20年以上経っているので、そろそろ買い替えたいなと思っているんですよね。
当日カタログを持ってきていただけないでしょうか?
では、よろしくお願いします。
「留守録ファイル変換」ボタンを押下してWhisperに文字起こししてもらいました。
文字起こしに要した時間は5秒、変換結果文字数は272文字でした。
音声テキスト変換結果:
もしもしエンジョイ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文字)できました。
高速テキスト変換が実感できます。
ビットレートなどの条件によるのか、パソコンでマイク入力したファイルとは異なり、実際の通話録音ファイルでは以下のような特徴がありました。
ネット上でも「余計な半角スペースが入る」とか、「句読点がつかない」など様々な実験結果が紹介されていますが、どのような仕様でテキストを生成しているのかは謎でした。
今回、紹介できなかったAzure AI Speechモデルでは、「リアルタイムでのテキスト変換」や「話者認識」等のコンタクトセンターでの利活用に最適な機能があります。
Microsoftのサイトには、以下のような記載があり、今後が楽しみです。
OpenAIと言えば、ChatGPTの印象が強いと思いますが、今回のご紹介でWhisperにも可能性を感じるなぁと思っていただければ幸いです。
Azure OpenAIのWhisperは、まだパブリックプレビューの段階ですが、近々、一般公開版(GA:General Availability)されると思うので、ビジネス活用の準備を進めて行きたいと思います。
OKIソフトウェアでは、従来より保有するソフトウェア技術と幅広い業種・業態知識とOpenAI等の新たな技術を組み合わせて、お客様のご支援をさせていただいています。
今後ともご愛顧のほど、よろしくお願いいたします。