diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/content/docs/whisper-to-ai-moji-okoshi.mdx | 99 |
1 files changed, 57 insertions, 42 deletions
diff --git a/src/content/docs/whisper-to-ai-moji-okoshi.mdx b/src/content/docs/whisper-to-ai-moji-okoshi.mdx index ef1e24e..e133b64 100644 --- a/src/content/docs/whisper-to-ai-moji-okoshi.mdx +++ b/src/content/docs/whisper-to-ai-moji-okoshi.mdx @@ -1,21 +1,22 @@ --- -title: 無料・超高精度のWhisper + 生成AIで文字起こしする方法 -description: OpenAI Whisperと生成AIを組み合わせた超高精度な文字起こしの方法。Google Colabを使えば無料・インストール不要で利用できます。 +title: 無料・超高精度のWhisperで文字起こしする方法(+α) +description: OpenAI Whisperを使った超高精度な文字起こしの方法。生成AIでの後処理も紹介。Google Colabを使えば無料・インストール不要で利用できます。 --- -## これまで +## Whisperと出会うまでの文字起こし -私はできる限り会議録を残すようにしています。参加者の発言をその場でPCに打ち込み、その場で会議録をほぼ完成させるスタイルです。以前は(承諾を得て)録音を持ち帰り文字起こししていましたが骨の折れる作業でした。色々な自動化ソフトを試しましたが、雑音があったり話者がマイクから遠かったりする場合はうまく認識してくれず、結局その場でPCに打つ方法がベストでした。 +私はできる限り会議録を残すようにしています。参加者の発言をその場でPCに打ち込み、その場で会議録をほぼ完成させるスタイルです。以前は録音を聞いてタイプしていましたが、骨の折れる作業でした。いろいろな自動化ソフトも試しました。しかし、雑音があるときや話者がマイクから遠いときなどは、うまく認識してくれません。結局、その場でタイプする方法に落ち着きました。 -しかし令和4年9月22日にOpenAIから **Whisper** という文字起こしAIが公開され、試してみたところ驚くべき性能でした。それ以来、各種会議の文字起こしに活用しています。 +そんな中、令和4年9月22日にOpenAIから文字起こしAIの **Whisper** が公開されました。試してみると驚きの性能で、それ以来、各種会議の文字起こしに活用しています。 その手法をここに説明いたします。皆様のお役に立てましたら幸いです。 :::note ##### 📝 この記事について -本記事は令和4年9月に公開した旧サイトのブログ投稿の焼き直しです。Whisperの文字起こし精度は今でも極めて高く、ここで紹介する手順も現在(令和8年)有効です。むしろ生成AIを組み合わせた後処理の手法が加わったことで、当時よりさらに実用的になっています。 +本記事は令和4年9月に公開した記事の焼き直しです。しかし、Whisperの文字起こし精度は極めて高く、ここで紹介する手順は現在(令和8年7月)も有効です。生成AIを組み合わせた後処理の手法が加わったことで、当時よりさらに実用的になっています。 ::: +{/* <!-- textlint-disable prh --> */} ## かんたん手順(手順だけ知りたい方) 1. [Colab を開く](https://colab.research.google.com/drive/1eAxHdqrF1Zt59V1ouSfo7iTBRYmhYDy7?usp=sharing)(Google アカウントでログイン) @@ -26,28 +27,24 @@ description: OpenAI Whisperと生成AIを組み合わせた超高精度な文字 6. 完了したら結果をコピー(`Ctrl+C` 不可、右クリック→「選択した内容をコピーする」) 7. 必要に応じて生成AI(ChatGPT 等)に貼り付け→整形 -より詳しい方法は続きをご覧ください。 - -:::tip -##### 💡 所要時間の目安 -無償版で 1〜2時間の音声なら 30分〜1時間程度。長い音声は途中で強制終了する場合があります。 -::: +詳細は続きをご覧ください。 ## 雇用を奪わない形でのAI活用 -昨今の凄まじいAI進化。善悪はともあれ、止められません。 -家の中の掃除や洗濯、食器洗いなどの家事が自動化されてきたことと同じように、主に自分で行う作業のAI化であれば「人間の雇用喪失をそれほど心配する必要がない」という点で安心できるところはあります。個人的な会議録の文字起こし作業もその一つです。ここではその視点に立ち、Whisperをご紹介したいと思います。 +昨今の凄まじいAI進化は、人類によいことなのでしょうか、悪いことなのでしょうか。画像生成AIには著作権上の問題があるため、私は使おうとは思いません。しかし会議録の文字起こし作業については、著作権侵害を心配する必要もなく、個人的な利用であれば雇用の喪失にもつながりません。掃除・洗濯・食器洗いが自動化されてきたものと同じ、人類のしあわせにつながることではないかと思います。ここではその視点に立ち、Whisperを紹介します。 ## 驚異的な精度 -[Whisperのページ](https://openai.com/index/whisper/)を読むと、単語誤り率(Word Error Rate; WER)は日本語で約6.4%とされています。「ほぼ完ぺき」と言われる5%に近く、実際の使用感でも非常に高い精度です。余談ですが **ファインチューン** というものを行えば、100%に近い精度も期待できるようです。 +[Whisperのページ](https://openai.com/index/whisper/)を読むと、単語誤り率(Word Error Rate; WER)は日本語で約6.4%とされています。「ほぼ完ぺき」と言われる5%に近く、実際の使用感でも非常に高い精度です。**ファインチューン** というものを行えば、100%に近い精度も期待できるとのことです。 -直近(令和4年9月時点)の小平市議会定例会における私の質問と、それに対する理事者側答弁の音声をWhisperで文字起こしすると、例えば次のようになります(間違えている箇所は<mark>黄色でマーク</mark>)。 +小平市議会定例会における私の質問と、それに対する理事者側答弁の音声をWhisperで文字起こしすると、たとえば次のようになります(間違えている箇所は<mark>黄色でマーク</mark>)。 <div class="whisper-transcript"> **▼ 文字起こし例 1** +{/* <!-- textlint-disable --> */} + 教育委員会としては重大事態として扱わなかったという事例があるんですが、<mark>一般して</mark>最終的に重大事態として扱うことになったんですが、その専門家から助言を受けたことで重大事態として扱ったわけではなくて、別の理由で扱うことになった。その専門家から重大事態として扱いなさいというような助言を受けたにも<mark>関わらず(←正しくは「拘わらず/かかわらず」)</mark>、その重大事態として扱わなかった場面において教育長はどのような指示されてきたのか、例えば教育長は<mark>まっ</mark>すぐに重大事態として扱いなさいとか、… **▼ 文字起こし例 2** @@ -58,19 +55,17 @@ description: OpenAI Whisperと生成AIを組み合わせた超高精度な文字 その時には私はちょっといなかったも<mark>と</mark>で、詳しいところは存じ上げてはいませんが、その話については聞く中では、当時そのお話ありましたが、すぐに重大事態に持っていくというような話ではなかったということもありまして、その後様々な話を聞く中で、やはり我々の市の方の重大事態に対する考え方というのも少し甘かったというところも確かに反省する点はございます。<mark>安田経</mark>議員がご指摘されていたように、重大事態の考え方というのは、やはりしっかりと我々の中で共通認識を持って対応する必要があると考えていますので… -</div> - -個人名はさすがに難しいようですが、ほぼ完ぺきに文字起こしできています。ファインチューンで最適化すればさらに精度が上がりますが、手間がかかるため、通常の使用では次節で紹介する**生成AIによる後処理**で十分にカバーできます。 +{/* <!-- textlint-enable --> */} -<img src="/img/whisper-processing.png" alt="Whisperで文字起こし中の様子" class="whisper-img" /> +</div> -上図は、私の一般質問をWhisperにかけてみた様子です。こんな感じで進捗していきます。 +個人名はさすがに難しいようですが、ほぼ完ぺきに文字起こしできています。ファインチューンによる最適化でさらに精度が上がるようです。しかし手間がかかるため、通常は次節で紹介する**生成AIによる後処理**で十分にカバーできます。 ## 具体的な文字起こし手順 実行環境を用意しました。Google Drive に音声ファイルを置き、Colab から直接読み込む(意味が分からなくても大丈夫です)方法で、インストール不要・無料で利用できます。 -**① 以下のリンクを開きます。**(ブラウザは Google Chrome 推奨) +**① 次のリンクを開きます。**(ブラウザは Google Chrome 推奨) 👉 [Google Colab で開く](https://colab.research.google.com/drive/1eAxHdqrF1Zt59V1ouSfo7iTBRYmhYDy7?usp=sharing) @@ -103,39 +98,55 @@ description: OpenAI Whisperと生成AIを組み合わせた超高精度な文字 :::tip ##### 💡 プライバシーについて - アップロードしたファイルの内容や文字起こし結果は、私からは一切見られません。アクセスログも取得していません。 -- Colab 上で Google Drive をマウントしても、その内容が他の共有相手に知られることはありません。ランタイムはユーザーごとに完全に独立しています。 +- Colab 上で Google Drive をマウントしても、その内容がほかの共有相手に知られることはありません。ランタイムはユーザーごとに完全に独立しています。 - アンマウントしたい場合は、コードセルで `drive.flush_and_unmount()` を実行するか、「ランタイム」→「ランタイムを再起動」してください。 - Google は情報を取得できる可能性があります。機密性が気になる場合は、ご自身の PC に Whisper をインストールしてご利用ください。 ::: :::tip ##### 💡 「マイドライブ」直下とは? -Google Drive を開いたときに最初に表示される場所です。「会議録」などのフォルダの中ではなく、**フォルダの外**に置いてください。 +Google Drive を開いたとき最初に表示される場所です。 -どうしてもフォルダに整理したい場合は、たとえば「会議録」フォルダに入れた場合、後ほど⑥で書き換えるパスが `MyDrive/会議録/onsei.mp3` のように変わります。 +フォルダに整理したい場合、たとえば「会議録」フォルダにonsei.mp3ファイルを入れた場合には、⑥でパスを `MyDrive/会議録/onsei.mp3` のように書き換えてください。 ::: **⑥ コード内のファイルパスを確認します。** -デフォルトでは `/content/drive/MyDrive/onsei.mp3` になっています。 -- **マイドライブ直下**に置いた場合: ファイル名だけ書き換えればOK(例: `MyDrive/kaigi.mp4`) -- **フォルダに入れた**場合: フォルダ名を含めて書き換え(例: `MyDrive/会議録/onsei.mp3`) +次の図の赤枠で囲んだ部分が、「パス」と呼ばれる、ファイルの置かれている場所です。デフォルトでは `/content/drive/MyDrive/onsei.mp3` になっています。 <img src="/img/whisper-path.png" alt="ファイルパスの確認" class="whisper-img" /> +ファイル名や保存場所に応じて、パスを次のように書き換えてください。 + +- ファイル名が違う場合: `/content/drive/MyDrive/kaigi.mp4`(例) +- 保存先フォルダが違う場合: `/content/drive/MyDrive/会議録/onsei.mp3`(例) +- ファイル名と保存先フォルダが違う場合:`/content/drive/MyDrive/会議録/kaigi.mp4`(例) + **⑦ 三角形の実行ボタン(▶)を押します。** <img src="/img/whisper-playbutton.png" alt="実行ボタン" class="whisper-img" /> -「このノートブックは Google が作成したものではありません」という警告が表示されたら、**「このまま実行」** を押してください。 +「このノートブックに Google ドライブへのファイルへのアクセスを許可しますか?」と表示されたら、**「Google ドライブに接続」** を押してください。 <img src="/img/whisper-access.png" alt="アクセス警告" class="whisper-img" /> -さらに確認ダイアログが出たら、同じく「このまま実行」を押します。 +{/* <!-- textlint-disable no-doubled-joshi --> */} +また、「このノートブックは Google が作成したものではありません」という警告が表示されたら、**「このまま実行」** を押してください。 <img src="/img/whisper-konomama.png" alt="このまま実行" class="whisper-img" /> -**⑧ 完了すると、最後にすべてを連結した文章が表示されます。** +また、次のように表示される場合は「次へ」や「続行」を押してください。 + +<img src="/img/google-login.png" alt="Googleログイン" class="whisper-img" /> + +<img src="/img/google-account-access.png" alt="アカウントアクセス" class="whisper-img" /> + + +**⑨ 実行すると、次の図のように進捗していきます。** + +<img src="/img/whisper-processing.png" alt="Whisperで文字起こし中の様子" class="whisper-img" /> + +**⑩ 完了すると、最後にすべてを連結した文章が表示されます。** <img src="/img/whisper-finished.png" alt="文字起こし完了" class="whisper-img" /> @@ -147,7 +158,7 @@ Google Drive を開いたときに最初に表示される場所です。「会 ### 続けて実行する場合や不具合が起きた場合 -別の音声ファイルを文字起こししたい場合は、ブラウザの再読み込みボタンを押して再度手順を繰り返してください。また、何か途中で不具合が起きた場合にも、同じ手順で直る場合があります。 +別の音声ファイルを文字起こししたい場合は、ブラウザの再読み込みボタンを押して再度手順を繰り返してください。また、何か途中で不具合が起きた場合には、三角形の実行ボタン(▶)を押したり、ブラウザの再読み込みボタンを押したりすることで直る場合があります。 :::caution ##### ⏱ 制限時間に注意 @@ -160,21 +171,21 @@ Google Colab 無償版には利用制限があり、最長12時間(実質4〜5 ### 生成AIにできること -1. **誤字・脱字の修正** - Whisperの聞き間違い(例: 「一般して」→「一旦は」)を文脈から推測して修正してくれます。 +1. **誤字・脱字の修正** + Whisperの聞き間違い(例: 「粉糖して」→「奮闘して」)を文脈から推測して修正してくれます。 -2. **話者の特定とラベル付け** +2. **話者の特定とラベル付け** あらかじめ話者の情報(「市長=小林洋子」「質問者=安竹洋平」など)を伝えておけば、発言ごとに `【安竹】` `【市長】` のように話者ラベルを付けてくれます。 -3. **フィラーの除去と文章整形** +3. **フィラーの除去と文章整形** 「えー」「あのー」といったフィラー(つなぎ言葉)を除去し、読みやすい文章に整形します。 -4. **要約の生成** +4. **要約の生成** 長い会議の要点を箇条書きでまとめることもできます。 ### 具体的なプロンプト例 -上記⑧でコピーしたテキストを、以下のようなプロンプトとともに生成AIに渡します。 +上記⑧でコピーしたテキストを、次のようなプロンプトとともに生成AIに渡します。 <div class="whisper-quote"> @@ -197,15 +208,19 @@ Google Colab 無償版には利用制限があり、最長12時間(実質4〜5 <div class="whisper-quote"> +{/* <!-- textlint-disable --> */} + いじめの重大事態に関してですよ専門家から重大事態としてこれを扱いなさいと扱った方がいいですよという助言を受けながらですね教育委員会としては重大事態として扱わなかったという事例があるんですが一般して最終的に重大事態として扱うことになったんですが… +{/* <!-- textlint-enable --> */} + </div> **生成AIで整形後:** <div class="whisper-quote"> -【安竹】いじめの重大事態に関してです。専門家から「重大事態として扱った方がいい」という助言を受けながら、教育委員会としては重大事態として扱わなかった事例があります。一旦は最終的に重大事態として扱うことになったのですが… +【安竹】いじめの重大事態に関してです。専門家から「重大事態として扱った方がいい」という助言を受けながら、教育委員会としては重大事態として扱わなかった事例があります。最終的に重大事態として扱うことになったのですが… </div> @@ -227,14 +242,14 @@ Google Colab 無償版には利用制限があり、最長12時間(実質4〜5 :::note ##### 💡 専用ソフトや自動化について -世の中には、Whisper の文字起こしと生成AIによる整形をワンクリックで行えるソフトや、Python スクリプトで API 連携させる自動化の手法も存在します。ただ、それらは環境構築や API キーの取得が必要だったり、日本語の話者識別がうまくいかなかったりと、導入のハードルが意外と高いのが現状です。 +世の中には、Whisper の文字起こしと生成AIによる整形をワンクリックで行えるソフトや、Python スクリプトで API 連携させる自動化の手法も存在します。ただ、それらは環境構築や API キーの取得が必要だったり、日本語の話者識別がうまくいかなかったりと、導入のハードルが意外と高いです。 ここで紹介している「Colab で文字起こし → 結果をコピー → 生成AIに貼り付け」という手順は、一見原始的ですが、コピー&ペーストの手間は数秒で済みます。また、人の目で最終確認する工程はどのみち必要なので、手作業の部分が極端なボトルネックになることはありません。**手軽さと実用性のバランス**で言えば、この方法は今(令和8年6月末)でも十分有力な選択肢です。 ::: ## 制限時間を延ばしたい場合(Google Colab Pro) -処理の速度を上げたり制限時間を延ばしたい場合は、[Google Colab Pro](https://colab.research.google.com/signup) もしくは Pro+ を契約することで可能になります。 +処理の速度を上げたり制限時間を延ばしたりしたい場合は、[Google Colab Pro](https://colab.research.google.com/signup) もしくは Pro+ を契約することで可能になります。 | プラン | 月額料金(記事執筆時点) | 特徴 | |--------|------------------------|------| @@ -254,7 +269,7 @@ Pro を一度契約すると1ヶ月間(最大100回分)使えます。なお :::caution ##### ⚠ 免責事項 -本ページで紹介している方法・ツールの利用に関して、いかなる問題が生じた場合でも、安竹洋平および本サイトは一切の責任を負いません。ご自身の判断と責任においてご利用ください。 +本ページで紹介している方法・ツールの利用に関して、いかなる問題が生じた場合でも、安竹洋平及び本サイトは一切の責任を負いません。ご自身の判断と責任においてご利用ください。 ::: import WhisperStyles from '@/components/WhisperStyles.astro'; |
