Whisperで話者分離ができる！会議や録音データを素早く文字起こし

この記事は[Safie Engineers' Blog! Advent Calendar 8日目](https://qiita.com/advent-calendar/2022/safie)の記事です。

# はじめに
映像から取得できる1時間程度の映像（ムービークリップ）を文字起こししたいという要望があったので、文字起こしシステムを作ってみました。
備忘録も兼ねて実施したことをまとめておこうと思います。[whisper](https://openai.com/blog/whisper)はOpenAI社が公開している高精度の文字起こしが可能なモデルになります。

文字起こしにwhipsperを使った決め手は以下です。
- AWS Transcribeより高精度
- pythonで素早く試せる
- MITライセンス

AWS Transcribeで可能な話者分離ができないことが懸念でしたが、話者分離も別のモデルを組み合わせれば実現可能と思いwhipserに決めました。



# アーキテクチャ
![システム構成図.drawio (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121324/ae5147d0-1969-54c8-7330-4530f3798bae.png)


whisper単体では処理の限界があったので、いくつか工夫を加えた結果上記のようなアーキテクチャになりました。
whisper単体での処理限界は後述します。

各種処理要素の役割は以下になります。
- [vad](https://github.com/snakers4/silero-vad)：人の声の入力を判定するモデル
- [whisper](https://github.com/openai/whisper)：文字起こしをするモデル。baseモデルだと精度が出ないため、largeモデルを利用
- [pyaanote](https://github.com/pyannote)：話者分離をするモデル
- integrate：pyaanoteとwhisperの処理結果を統合するロジック

各種環境は以下になります。
- sagemaker
    - ノートブックインスタンス：ml.g4dn.2xlarge
    - kernel：conda_amazonei_pytorch_latest_p37
    - リージョン：東京
- pytorch バージョン：1.13.0+cu117

## このアーキテクチャを採用した経緯

- **話者分離をするpyaanoteを採用**
    - whisper単体では話者分離ができないので、話者分離ができる[githubのdiscussion](https://github.com/openai/whisper/discussions/264)で取り上げられていたpyaanoteを採用しました。
- **CPU環境だと処理時間が長すぎるので、GPU環境を採用（処理時間6時間→20分の短縮）**
    - GPU無しのCPU環境だと、1時間の音声に対して6時間程度の処理時間がかかってしまいました。これだけ長いとパラメーターチューニングが非常にやりづらかったのでAWSのGPU環境を利用することにしました。
    - EC2にNVDIAのドライバーをインストールしていくよりもpytorchが即座に利用可能なsagemakerの方が都合が良いと考え、sagaemakerを採用しました。
        - ただ、たまにpytorchの利用ができないパターンがあってEC2で環境構築した方が良かったのではないかと後悔。。。
        - 手軽に試せるもののAWSに環境構築を依存しているので、痒いところに手が届かないのが難点。
- **沈黙時に文字起こしがされてしまうので、VADモデルを採用することで、文字起こし精度が向上**
    - 沈黙時に沈黙前の音声が繰り返し出力されてしまうことがあったので、沈黙の際の音声を文字起こしの対象データに加えないようにしました。


# 入力データ
プライバシーの都合からこちらの動画を使って文字起こしをしてみます。
<iframe width="560" height="315" src="https://www.youtube.com/embed/qTL8gSTI7bg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

# 出力結果

以下のような文字起こしの出力結果が出ました。（一部抜粋）
かなり精度高く文字起こしできている事が分かりますね。
![スクリーンショット 2022-11-30 16.46.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121324/0e9b1741-0c4f-ba97-3db9-9fde18340ad5.png)

- 出力結果の参考情報
    - 処理時間：20分程度
    - vadモデルによるファイル分割：無し

speakerを二人で設定しているので、speaker0とspeaker１として分離して出力されました。
ただ、この写真の赤で囲んだ通り「そうなんですね」という相槌がうまく分離されておりません。
これは**話者分離の結果とwhisperの文字起こしを統合する際のロジックに修正の余地がある**ことを示唆しています。
というのも、pyaanoteの出力結果で重複時間帯が発生することを想定できていませんでした。そのため、より長い発話があった方の発話とみなされてしまっています。
今回のようなインタビュー音声では沈黙がほぼ無いため、vadによる沈黙分離は有効に機能しないので、pyaanoteをベースにした音声ファイルの分割を行った方がより精度の高い結果が得られると思います。

また、pyannoteを４人の音声で試したみたところあまり精度が出なかったので、大人数の話者分離には向いていないのかもしれません。

<details><summary>テキストデータ詳細（話者分離無し）</summary>


```text
皆様こんばんは女流騎士の香川まなおです本日なんですけれども予告をさせていただきました通り渡辺彩乃名人にご登場いただきますどうぞよろしくお願いいたしますいやもう先日の動画にご出演いただいた時も大反響でそうなんですよ本当にありがとうございますyoutubeって高評価っていうシステムがあるんですけど本当にあの動画が多分私のチャンネルで一番高評価率というか高評価率皆さんにすごくいかに喜ばれているかっていうのが一番どうにもにある何低評価な動画もあると思うんですねあるんですよどういうのは低評価低評価は割とつける人はいつでもつけちゃうのでちょっとどうしようつけましたところがあるんですけれどもあの高評価はなかなかやっぱりしてもらうハードルがあるので本当に感謝しておりますありがとうございますそれは何高評価の動画がたまるとなんかいいことあるのあの皆さんのコメントもそうなんですけどたくさんの方が参加している動画や配信の方が皆さんのおすすめとかに上がりやすいということで名人や将棋会議に興味持ってくださる方がより増えやすいという形になっておりますまさかでもご登場いただけるとお話しできて本当にありがとうございます貴重なお時間と思いますが少しご質問させていただければ幸いですここでまず視聴者の皆様に改めまして渡辺美人のプロフィールをご紹介したいと思います渡辺明美の名人は東京都葛飾区のお出身でいらっしゃいます1984年4月23日生まれの36歳諸市数春七段儲そして将棋会に5人しかいない中学生プロ騎士のお一人でいらっしゃいます騎士生活は21年ということですがタイトルの類計画特数は26期衛星竜王、衛星騎王の資格を保持されておりますさらに今年の8月第78期名人戦7番勝負において豊島名人に4勝2敗で勝利しご自身初となる名人を獲得されました本当にありがとうございます以前ご感想も伺ったんですけれどもどうでしょう改めてそれからの日々はおかわりございましたそうですね今度1月からまたタイトル戦はあるんですけどそれの挑戦者を決めるっていう段階なんでそうすると持ってる側は結構なんていうんですかその間はどうしても体力が少なくなるんで今結構そういう時期ですかねタイトな5月送られてた分この時期はちょっとゆっくり過ごされてそういう間ですこれまで告知もさせていただいた初始一文での宿が会イベントが終わったばかりということでお疲れのところありがとうございますお話しされてた師匠との対談はいかがでしたかそうですね前回動画の中でそれを告知したんですね師匠と対談するの初めてですがいやそうですね対談ねなんか新しい話はでもそんなのあったかな師匠から見たやっぱり僕は入門した時どうだったかみたいなことを言ってましたねあんまり本筋じゃない商業させてたって言ってましたねいやいや僕は入門した時ちょっとけれんびたっぷりなんてちょっと専門用語ですよねいわゆる本筋じゃないちょっとこうなんていうのかなちょっと相手を惑わせるようなちょっと差し方を当時しててそれがちょっと心配になったみたいなことを今日言ってましたちょっと今の名人の気風からちょっと想像がつかないいやそうなんですよ僕ね今すごい本筋の将棋だからいやそれ自分なのなんだけどいやちょっと今日はけれんびたっぷりなんて言われてちょっと心害だったんですけどそうなったんですねそのけれんびたっぷりな将棋小学生の差し側当時から本筋を心がけてたつもりだったけれんびたっぷりっていうかすごい早差しだったんですよ小学生の時本当に早差しだったんでそれがちょっとこうなんていうんですかそういうちょっと時間責め気味なけれんびたっぷりっていう意味で師匠がそうですそうだったんですね将領会の試験受けた時に竹部さんって今上流プロのプロじゃないですか竹部さんと将領会試験で対戦した時にその将棋が始まってから4分ぐらいで終わったっていうの結構有名な将棋があって4分僕の将棋時間が2分だったんですよたぶん竹部さんもそんなもんだったんですけどそんなバババババババババってやって隣がなんかまだコマ並べてるぐらいの時にこっちが終わったっていうそんな将棋的なことがあったそれぐらい早かったんですねだからそれが結構けれんびたっぷりでみたいなことを今日も言われました懐かしい話をなんか心配してたみたいですけれんびたっぷりだからっていう心配されてたんだっていう異表の話が聞こえた渡辺明治は中学生プロ入りされたのは5人しか処理会にいらっしゃらないということそのほう1人というかと思いますがせっかくなので中学生騎士っていうトピックで少し私の方からご質問させていただいて思いますよろしくお願いしますまず中学生騎士と言いますと5名いらっしゃるんですがまず加藤博夫さんが中学生何年前だろうっていう感じではありますけどそうですね加藤先生は今年80に今なられてますよねはいだから65年前ぐらいの話で解局もされたことあると思いますけど印象に残っていることなんじゃないですかそうですね加藤先生とは一回しか差したことないんですよねそうだったんですか自分がプロになった年にデビューした年に対戦してそうだったんですか加藤先生はだからその時何歳だろう44歳さだから僕が16歳だから16に44足すから60歳ね60歳だったんですけど加藤先生まだ永久でしたから60歳って言っても本当に大先生といきなりの大戦だったんですねいや負けましたけどね僕はね当時の印象とか覚えてますかその対戦した時というよりも僕が処理会の時に加藤先生の記録係とかをやったんですよ何回かそうなんですねやっぱその時の印象は結構強いんですね記録係ってあのいわゆるスコアラーなんですけどプロが将棋をさせてる横に座って何をさせたかっていうのと時間を記録をつける係なんですけどもやっぱ加藤先生の初めてやった時とかも迫力がすごくてそうですよね特にだって15歳ってそれをこう間に合いけるわけじゃないですかねそうですねそれの時のやっぱり加藤先生が永久12戦とかをやってるのを自分がスコアしてるっていう時の迫力っていうかそれはすごかったですねあとね加藤先生にそのお買い物とか頼まれましたよあなんか対局中にそう加藤先生は対局してて僕が隣の将棋のスコア付けをやってる時とかにこっちが先に終わったんですねそしたらあじゃあ君終わったんだったらちょっとみかんを買いに行ってきて好きやりとみてそういうね2回ぐらいありましたみかんを買いに行ったことじゃあちょっとみかん常識があるんですね終わったら宮尾屋さんにみかんを買いに行かされるんですけどなぜかね5000円なんですよなぜかっていうかまあ後から思うとそういうことだったんだろうけど5000円札を渡してみかん1袋買ってきてくるって言われてますねみかんってだいたい1袋300,400円とか言われてますがそうですよねでこう買ってきましたっていうとお釣りくれるんですよおだちんそれはだからそれがね毎回多分5000円だったのはおだちんとしてはちょうどいいぐらいの額っていうか1000円札だとちょっと安いでしょおだちんはいちゃうときに500円でちゃりんてやられてるそうなんか迫力者の先生500円しかくれないそっかそれもやっぱりトップキッシュとしての器の大きさっていうのも感じるエピソードですねそれでやっぱりそういうの僕らも見て育つじゃないですかこういうときはちょっと多めにお小遣い渡すんだなってなんか修了じゃないが長くて苦労した経験があってそういうことをされるんだったらわかる気がするんですよ若くして中学生でプロになったのにその器の大きさというのがやっぱり加藤勲先生さすがだなっていう感じですねいやだからね実際対戦したエピソードはあんまり実際1回しかないくてまあ普通に任されたんでいやーでも加藤先生その時ね60歳だったんですよで僕は16歳で普通ね諸議会で16歳対60歳の対戦って言ったら16歳の方が普通はそっちの人が勝つでしょって思うやっぱ若いしその若い人が例えば今やっぱ強いっていうイメージがあるじゃないですかで僕も16歳で加藤先生もちろん強いことはわかってたけども60歳ですよもうそうですよねってなったらいくらこっちが新人のぺーぺーでも60歳の先生だからチャンスがあると思うじゃないですかもちろんチャンスがあると思って勢いよい男をね当日乗り込むわけですけどもでまあ実際負けていやーやっぱり全然違うんだな永久の先生で全然強いんだなと思ったのがそれがだから16の時でで去年かな加藤先生とちょっと本のね企画で対談する企画あったあそうだったんですねでその時に対談してで加藤先生にいやーあの時実は僕勝てると思って正直16歳から60歳だから普通勝てると思って行ったんですよって思ったらなんかすごい驚かれてまさかこっちも負けるとはもう思ってなかったってなった僕は60歳なんだけどでこっちは16歳なんだけどやっぱ加藤先生その頃まだね永久バリバリでいらっしゃったしいや渡辺さんがそんなこと思ってたとは意外でしたみたいな感じでその自信が自信があってたんですけど十数年後の答え順当に任されたっていうああそうことですねちょっと2人目の中学生記者ということで谷川孝司先生渡辺名人結構尊敬するというそうですね知っていられている印象があったんですがなんとか谷川先生にまつわるお話ちょっとやってもよろしいですか谷川先生のことはよく寄付なんかも小学生の子がよく並べましたしね谷川先生ももうレジェンド中のレジェンドでいらっしゃいますけども谷川先生とは対戦は加藤先生よりは全然多いんですけどもでもやっぱり最初対戦した時はすごく緊張しましたねやっぱり小さい頃からテレビで見てた人なんでその人と実際対戦するってなってその時はすごい緊張して何年目だろう3年目ぐらいかな自分がプロになって3年目ぐらいの時に高校3年生ぐらいの時に初めて対戦してそうか高校生ですもんね谷川先生といえばやっぱりまあもちろん将棋はもちろん強いんですけども対局中の姿勢だったり処作だったりねそれを後輩に多分一番真似されている騎士ですよねああそうですよね後輩の騎士がそういう対局中の処作とかそういうのを真似するの誰ですかって聞くと大体谷川先生の名前をあげる人多いですよ実は私も初めてタイトルに師匠からまさにそういうのがあって師匠も推しを取った時に谷川先生の処作をこうそうなんですそう同年代なので中村先生とだって谷川先生同年代なので真似するんだそうですねはい中学生でプロになられてる谷川先生で師匠は23歳くらいでたりとかそういう意味でやっぱりその経営される年が近くてもやっぱりそうですねなのでますますそうだったんですねあまりも先日なんですけども谷川名人がもう緊張されるなんてちょっと今の感じだとちょっと想像がつかない今はね今は想像できないと思うんですけどやっぱり高校生ぐらいだといろんな先輩と初めて対戦したりするじゃないですかそうするとやっぱり小さくなってましたよ対戦したりタイトル戦に解説で行ったり解説とかちょっと仕事で行ったりしてそうすると周り大先生ばっかり小さくなってるそういう時はやっぱりありましたねそういう時もすごいささやかな質問なんですが対局にその緊張した時って何か影響されたりされましたかそれとも始まると普段通りという感じでしたかねでもやっぱり加藤先生とか谷川先生とか阿部さんとか中原先生とか入永先生とかそういった本当のこう本当のトップクラスというと失礼だけど本当のトップクラスの人とやる時の初対戦ってのはすごく緊張しましたやっぱりそれはなんか全然違いますいざ初めて段を挟んで対戦するっていうのはまあ1回やると慣れて2回目からはなんとなく普通にやれるんですけどやっぱり1回目の緊張感っていうのは特にだから自分より年が上の人はそうですよね加藤先生もそうですけどね谷川先生中原先生中原先生っていうあたりの方と初めてやるっていうのはそれはそれは多分いつの時代も一緒だと思いますよ今の若手の人もだから今50歳阿部世代ももう50歳阿部さん50歳になられましたよねってなったら谷川先生50半ばぐらいですけどやっぱそういった若手10代20代の若手にとっては自分のお父さんぐらいの人の年齢とやるでその人がレジェンド中のレジェンドってなったらやっぱり緊張してみんなやってると思います感動みたいなもんですねありますね小さい頃テレビで見てるんですよまあ今だったらねネットとかでテレビで見てるんですけどテレビで見てた人と自分がこうやるっていうねそういう感動あると思いますでも渡辺美人でもやっぱり緊張されてるんだと思ったちょっとなんとか安心感みたいなものがちょっとありますいやそれもう平々の頃の話ですタイトルとか取っていくたびにもう態度がでかくなってくるいやいやいやいやいや平々の頃の話です本当に貴重なお話ありがとうございます今まさにお話が出たんですがハブプシハロー9団ハブ全生校中学生記者でいらっしゃるわけなんですが現在竜王戦の挑戦者となることが決まり通算100金のご来院に手にかかったことが望まれるんですがどのようにご覧になりますかハブさんがもう50なんだというねそうですね全然そう見えないからね確かにそう思いますけども先日竜王戦で挑戦者になられまして挑戦者になられた時は49なんですけども竜王戦の開幕日10月8日ですかの段階では50歳ということでハブさんもちろん初めてですけども50歳でのハブさんにとっても初めて50歳でのタイトル戦ということで50代以上で50歳以上でタイトル戦に出た人って将棋会の歴史で言っても数えることしかいないんですよ確かに米沢先生とかそうなんですけど例えばさっき名前上げた中原先生とかも出てないしってなった時に50歳以上でタイトル戦に出るっていうのはすごい大変なんですよねみんな大体最後のタイトル戦いつですかってなった時にほとんどの人が40代なんですよね今まで名前上げてきたトップクラスの人たちでも大体最後のタイトル戦は40代っていうことが多くてだから今回その50歳でハブさんがタイトル戦出たっていうのはハブさんだから別に当たり前でしょうって結構思うけど実はこれ開拓でそうですねしかも防衛戦じゃなくて新たに挑戦者になられたっていうところがまたそうですねトーナメント勝ち抜かなきゃいけないんですごいすぎてちょっと百鬼というのがあまりピンとこないくらいすごいな百鬼っていうのはねだからハブさんって百鬼にどれくらいこだわってるんですかねいかがですかね要するに99期の段階でもう衛星七艦達成してるじゃないですか確かにそうですよね衛星七艦達成する時までは衛星七艦という明確な目標があったじゃないですかでもこれ199でも達成してるから99と100ってただきりがいいかどうかだけの違いでしかないんです確かにご本人的にはこれどれくらいのあれなのか結構興味ありますよねでもなかなか教えていただけないだからちょっと読んでちゃんとこう読んで聞いてください100期と99期の違いはきりがいい以外にどれくらいの違いそれちょっと読んで聞いてくださいありがとうございますNHK外の実戦がまさにハブ先生というそうですねしかも結構久しぶりの対局ですねそうですねハブさんとの対戦は10月に順次選挙にさられて以来かなと思うんですがだから2さんの対戦数が70後半ですかね80まだいかないぐらいなんですけどだから100弾刺して結構大変なんですねあれ100曲刺すのってでもあと20数曲なんですけどそれは結構やっぱ大変だだってこの1年で1曲しか刺してないわけだからしってなったらね結構100番刺し大変だなって100番刺しってお互いがこう強くないといかないんで結構将棋会では同じ人同士で100番刺すっていうのはもうすごいステータスなんですけどその100番刺し結構大変だなっていう思いましたねやはりタイトル戦の晩勝負になると一気に対局するもんねそうなんですよ晩勝負やると5番勝負だったら6曲なくても4曲ぐらいはやるでしょうってなって7番勝負だったら大体6曲はやるでしょうってなるからそうすると結構一気に対局数増えてくるんですけど渡辺名人とハブ先生の100番勝負がいつか100番目の対決が見れるそうですね一応それは目標で僕もやっぱり100番刺し達成できそうな相手ってハブさんぐらいしかいないんで自分の中ではもちろん一番大戦数が多いのもハブさんだし50超えてる人すらいないですからねだからそういう意味では100番刺しってステータスだから一回は達成しておきたいなってのもありますけどねでもきっと若手の岸野先生も渡辺名人と100番刺ししたいってまさにそういう気持ちで背中を追いかけて来られるんじゃないですかねまあそうだといいんだけどそうですそうだと思いますますます色々なご活躍の楽しみなんですが最後の最新の中学生騎士が藤井祖太に関でいらっしゃるんですがこれまでもたくさんご活躍されてますけれども今高校生そしてこの後20代へという風になっていく中でどのような戦われ方になっていくかというのをご自身の経験とかも踏まえて何か予想というかがございましたらいやそうですね藤井君藤井君なんて言っちゃいけないから藤井君についてはねほんとよく聞かれましたねこの1年ぐらいかな特にねいやだから既成戦終わった後もいくつかインタビュー受けていくつかこうカッチリしたインタビュー受けて結構断ったインタビューもあるんですけどインタビューってさ結構その度に微妙に自分が言うこと変わっちゃったりすることはあるじゃないですか確かにニュアンスだったり感じ方は変わりますよね同じこと言ってるんだけどこの人が違うように書いちゃったとか受け取り側が微妙に違う受け取り方したとかってなるから結構そのなんていうのかな慎重に最初にカッチリしたの受けてあとはもうそれを参照してみたいなそうやってるのも新しくインタビュー受けてなんか自分で同じこと言おうと思うんだけど要するに無人化の少女が変じゃないですか自分のインタビューの中でいろんな角度のお意見が聞けるのは嬉しいかなという気もしますけれどもいやだから結構将棋会の定番のインタビューでなんとか先生の印象をお願いしますって聞くじゃないですかすみません私もいっぱい聞いてるそうですよねだけどそれって聞かれる側からするといやもう散々その人の印象何回も答えてきたみたいな感じでもうテンプレを作っててほしいぐらいですよ渡辺が答えるこの人の印象みたいなもうこうだからねだってそんな差変わんないでしょ印象ってそうですよね3年に1回ぐらい更新すれば多分十分なんですよ3年ぐらい経つとちょっと気球変わったりとかちょっと新しい趣味ができてたりとかするんですけどそれ以内ぐらいだとだいたい印象って聞かれても同じようなこと言うんで聞く側にすると聞きやすいんですよね印象って言いたいこと言いたくないこと言えないことっていうのが話す方にしかわからないっていう時があるかなっていう意味でちょっと広めに伺っちゃうっていうのはまあそうですよねそれはいいとしてもいいとしてもいやいやだからこの前ね既成戦やってすごい反響でしたけどもまあ実際その対戦するのは2019年の旭敗の決勝で対戦したのは初めてでそれ以来の対戦でしたけどもやっぱその2019旭敗っていうのは持ち時間が短い勝利なんでまあいわゆる早挿しってやつですよね早挿しだとちょっと相手の特徴とかもいまいち掴みきれないまま終わっちゃうんですけど今回既成戦で4局持ち時間4時間の勝利で4局かっちり刺したんでまあ藤井君の強さはよくわかりました強さはねよくわかったんだけどじゃあそれで対策が今のところあるかって言ったらないんだけどとりあえずだってそれまではまだ強さもよくわかってないわけですよ実際に刺してないから実際刺したことでとりあえず今あ強さよくわかりましたっていう段階そこからじゃあそれを踏まえてどうするのっていうのはここからもう一個先の話ですまだなかなか対局する機会もすぐにはそうですねだから次そのねタイトル戦で当たる機会があったら今回のデータ情報を踏まえてちょっとまた考えますっていう段階ですねありがとうございますやっぱりこうファンというかこう見ているとついその短期的にここがどうだったかっていうことをつい聞きたくはなってしまうんですがやはり勝利の騎士ってこう長く障害現役じゃないですけど戦い続けていくっていうことでぜひ皆様も今後のタイトル戦などもご注目くださいそろそろお時間になりますので最後に視聴者の方に一言いただきますかえーなんだろ特にないな皆さん今日はご覧いただきましてありがとうございますなんかしんないけどねなんでこんなに障害続けて僕が出てんだよって結構思われてるかもしれないですけどなんか説明すると早くなるけどなんかこう縁があってこうね一回仕事の後のタイミングみたいなちょうがあったんで出させてもらいましたけども皆さんね普段は加賀さんのチャンネル始めでいろんなYouTubeとか見て勝利楽しんでいらっしゃってそういう方が大勢いるから僕らプロキシーっていうのは成り立つわけですけども僕次こういうところいつ出てくるか分かりませんけどもまたぜひですねお将棋会の応援していただいてまぁタイトル戦8名ですねそういった将棋の寄付なんか見てぜひ楽しんでもらえればと思いますどうもありがとうございました田辺名人お忙しい中本当にありがとうございましたはいどうもありがとうございましたそれではこの辺で失礼いたします
```

</details>

# サンプルコード
サンプルコードは以下になります。
https://github.com/KentaShintomi/voice_recognition/blob/main/voice_recognition_whisper.ipynb

# 結論
whisperはかなり高精度に文字起こしできることが分かりました。
文として捉えるには良いのですが、特定の単語のカウントなどをしようとすると、まだ精度は５０％程度のように感じます。
文字起こしをした後に再修正を加えることが前提のユースケースならば利用可能なシーンも出てくると思います。
今回の出力データではループにはまって同じ単語が出力する現象が見られませんでしたが、1時間程度の音声だと同じ単語が繰り返し出力される現象が見られました。こちらは[whisperの論文](https://cdn.openai.com/papers/whisper.pdf )でも言及されています。

>Many remaining errors, particularly in long-form transcription seem more stubborn in nature and decidedly non-human/perceptual.
They are a combination of failure modes of seq2seq models, language models, and text-audio alignment and include problems such as **getting stuck in repeat loops**, not transcribing the first or last few words of an audio segment, or complete hallucination where the model will output a transcript entirely unrelated to the actual audio.

また、pyaanoteを組み合わせることで話者分離も可能になりました。

今後時間があれば以下も取り組んでみたいと思っています。
- integrateロジックの改善
- EC2へのDockerイメージ化
- 文章要約APIと組み合わせることでより効果的な文字起こし作成

# 参考記事
- whisper
    - 論文：https://cdn.openai.com/papers/whisper.pdf 
    - 公式サイト：https://openai.com/blog/whisper
    - github：https://github.com/openai/whisper
- VAD
    - github：https://github.com/snakers4/silero-vad
- pyannote
    - github:https://github.com/pyannote