aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/content/docs/whisper-moji-okosi.mdx
blob: 9363c772601d3036fe50f38c5cc98f9cb7ab8fe7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
---
title: 無料・超高精度のWhisper + AIで文字起こしする方法
description: OpenAI Whisperと生成AIを組み合わせた超高精度な文字起こしの方法。Google Colabを使えば無料・インストール不要で利用できます。
---

## これまで

会議のたびに会議録を残すようにしています。以前は(承諾を得て)録音したものを家に帰ってから文字起こししていましたが、骨の折れる作業でした。自動化しようと色々なソフトを試しましたが、雑音があったり話者がマイクから遠い場合にはうまく認識してくれず、結局はその場でPCにタイプするのが最も効率的でした。

そんな中、令和4年9月にOpenAIから **Whisper** という文字起こしAIが公開され、試してみたところ驚くべき性能でした。それ以来、議会の一般質問や各種会議の文字起こしに活用しています。

:::note
##### 📝 この記事について
本記事の元となったブログ投稿は令和4年9月に公開されたものですが、Whisperの文字起こし精度は今でも極めて高く、ここで紹介する手順も現在(令和8年)まで有効です。むしろ、生成AIを組み合わせた後処理の手法が加わったことで、当時よりもさらに実用的になっています。
:::

## 雇用を奪わない形でのAI活用

深層学習AIの進化は凄まじく、良し悪しはともあれ止められません。「AIが仕事を奪う」という視点もあれば、「AIが単調な作業を軽減してくれる」という視点もあります。文字起こしのような個人レベルの単調作業の自動化は、後者の観点から安心して活用できる分野です。

## 驚異的な精度

Whisperの単語誤り率(Word Error Rate; WER)は日本語で約6.4%とされています。「ほぼ完ぺき」と言われる5%に近く、実際の使用感でも非常に高い精度です。さらに **ファインチューン**(用途に合わせて人名や用語を追加学習させること)を行えば、100%に近い精度も期待できます。

たとえば、直近(令和4年9月時点)の小平市議会定例会における私の質問と答弁の音声をWhisperで文字起こしすると次のようになります(間違えている箇所は<mark>黄色でマーク</mark>)。

<div class="whisper-transcript">

**▼ 文字起こし例 1**

いじめの重大事態に関してですよ、専門家から重大事態としてこれを扱いなさいと扱った方がいいですよという助言を受けながらですね、教育委員会としては重大事態として扱わなかったという事例があるんですが、<mark>一般して</mark>最終的に重大事態として扱うことになったんですが、その専門家から助言を受けたことで重大事態として扱ったわけではなくて、別の理由で扱うことになった。その専門家から重大事態として扱いなさいというような助言を受けたにも関わらず、その重大事態として扱わなかった場面において教育長はどのような指示されてきたのか、例えば教育長は<mark>まっ</mark>すぐに重大事態として扱いなさいとか、そういった指示はされてきたのか、それとも教育長自身にそういった情報が上がっていなかったのか、そのあたりちょっと確認させてください。

**▼ 文字起こし例 2**

第1点目の、この3年間の教育長の給与になりますが、まず基本的な月額給与から申し上げますと81万円になります。あと、これに期末手当<mark>とが</mark>加わりますので、年間の収入で申し上げますと1,336万5,000円となります。これを3年間にさらに退職手当が入りますので、4,617万円となります。以上でございます。それ以外はないということでいいですか。報酬がそれ以外ないかということでいいですか。ない。以上ということですか。ない。ない<mark>ならないでしょ</mark>。<mark>村部長</mark>。まず月額給与と期末手当と退職手当、この3つとなります。他には特にはございません。以上でございます。

**▼ 文字起こし例 3**

その時には私はちょっと<mark>いなかったも</mark>ので、詳しいところは存じ上げてはいませんが、その話については聞く中では、当時そのお話ありましたが、すぐに重大事態に持っていくというような話ではなかったということもありまして、その後様々な話を聞く中で、やはり我々の市の方の重大事態に対する考え方というのも少し甘かったというところも確かに反省する点はございます。<mark>安田経</mark>議員がご指摘されていたように、重大事態の考え方というのは、やはりしっかりと我々の中で共通認識を持って対応する必要があると考えていますので、ここでまたいじめの関係については、少しマニュアル等をしっかり見直して、学校関係にもしっかり周知をして、考え方をしっかり統一していこうということで今進めておりますので、ご指摘されたような点は今後はまずない、絶対ないというふうに考えているところでございます。

</div>

個人名はさすがに難しいようですが、ほぼ完ぺきに文字起こしできています。役職名や市で独自に使っている単語などをファインチューンで最適化すれば、さらに精度が上がるでしょう。

<img src="/img/whisper-processing.png" alt="Whisperで文字起こし中の様子" class="whisper-img" />

## Whisperで文字起こし → 生成AIで仕上げる

Whisperだけでも十分実用的ですが、文字起こし結果を **生成AI(ChatGPT, Grok, Claude, Gemini, DeepSeek など)に渡す**ことで、さらに高品質な会議録ができあがります。

### 生成AIにできること

1. **誤字・脱字の修正**  
   Whisperの聞き間違い(例: 「一般して」→「一旦は」)を文脈から推測して修正してくれます。

2. **話者の特定とラベル付け**  
   あらかじめ話者の情報(「市長=小林洋子」「質問者=安竹洋平」など)を伝えておけば、発言ごとに `【安竹】` `【市長】` のように話者ラベルを付けてくれます。

3. **フィラーの除去と文章整形**  
   「えー」「あのー」といったフィラー(つなぎ言葉)を除去し、読みやすい文章に整形します。

4. **要約の生成**  
   長い会議の要点を箇条書きでまとめることもできます。

### 具体的なプロンプト例

Whisperで文字起こししたテキストをコピーし、以下のようなプロンプトとともに生成AIに渡します。

<div class="whisper-quote">

以下は市議会の一般質問の文字起こしです。次のように整形してください:

- 誤字・脱字を文脈から判断して修正する
- 話者を特定し、発言の先頭に【話者名】を付ける
  話者: 安竹洋平(質問者)、小林洋子(市長)、教育長(名前不明)
- 「えー」「あのー」などのフィラーは削除する
- 文意が通るように適宜句読点を補う
- 元の発言内容は変えないこと

[ここにWhisperの文字起こし結果を貼り付ける]

</div>

### 実例

**Whisper出力(生):**

<div class="whisper-quote">

いじめの重大事態に関してですよ専門家から重大事態としてこれを扱いなさいと扱った方がいいですよという助言を受けながらですね教育委員会としては重大事態として扱わなかったという事例があるんですが一般して最終的に重大事態として扱うことになったんですが

</div>

**生成AIで整形後:**

<div class="whisper-quote">

【安竹】いじめの重大事態に関してです。専門家から「重大事態として扱った方がいい」という助言を受けながら、教育委員会としては重大事態として扱わなかった事例があります。一旦は最終的に重大事態として扱うことになったのですが…

</div>

### 議会での活用フロー

```
音声/動画ファイル(.mp3/.m4a/.wav/.mp4 等)
    ↓ Whisper で文字起こし
生テキスト(誤字・フィラーあり)
    ↓ 生成AI で整形
整形済みテキスト(話者ラベル・句読点付き)
    ↓ 最終確認・加筆
完成した会議録
```

この方法を組み合わせることで、2時間の会議の会議録作成が、従来の半分以下の時間で完了するようになりました。

## Colabで文字起こしする手順

Google Drive に音声ファイルを置いて、Colab から直接読み込む方法です。インストール不要で、ファイルが大きくても高速に処理できます。

**① 以下のリンクを開きます。**(ブラウザは Google Chrome 推奨)

👉 [Google Colab で開く](https://colab.research.google.com/drive/1eAxHdqrF1Zt59V1ouSfo7iTBRYmhYDy7?usp=sharing)

**② Google アカウントでログインします。**

<img src="/img/whisper-login.png" alt="Colab ログイン画面" class="whisper-img" />

**③ メニューバーの「ファイル」→「ドライブにコピーを保存」を押します。**  
これで自分の Google Drive に Colab ノートブックがコピーされます。

**④ メニューバーの「ランタイム」→「ランタイムのタイプを変更」を押します。**

<img src="/img/whisper-runtime.png" alt="ランタイム変更メニュー" class="whisper-img" />

**⑤ ハードウェアアクセラレータを「T4 GPU」に設定し、保存ボタンを押します。**

<img src="/img/whisper-gpu.png" alt="GPU設定画面" class="whisper-img" />

**⑥ 文字起こししたい音声ファイルを Google Drive の「マイドライブ」直下にアップロードします。**  
ここでは例として `onsei.mp3` で説明します。mp3、m4a、wav などの音声ファイルだけでなく、mp4 などの動画ファイルもそのまま文字起こし可能です。アップロードが完了するまで待ちます。

<img src="/img/whisper-mydrive.png" alt="マイドライブにアップロード" class="whisper-img" />

<img src="/img/whisper-uploading.png" alt="アップロード中" class="whisper-img" />

:::tip
##### 💡 「マイドライブ」直下とは?
Google Drive を開いたときに最初に表示される場所です。「会議録」などのフォルダの中ではなく、**フォルダの外**に置いてください。

どうしてもフォルダに整理したい場合は、たとえば「会議録」フォルダに入れた場合、後ほど⑦で書き換えるパスが `MyDrive/会議録/onsei.mp3` のように変わります。
:::

**⑦ コード内のファイルパスを確認します。**  
デフォルトでは `/content/drive/MyDrive/onsei.mp3` になっています。

- **マイドライブ直下**に置いた場合: ファイル名だけ書き換えればOK(例: `MyDrive/kaigi.mp4`)
- **フォルダに入れた**場合: フォルダ名を含めて書き換え(例: `MyDrive/会議録/onsei.mp3`)

**⑧ 三角形の実行ボタン(▶)を押します。**

<img src="/img/whisper-run.png" alt="実行ボタン" class="whisper-img" />

**⑨ 警告が出たら「このまま実行」を押します。**

<img src="/img/whisper-konomama.png" alt="このまま実行" class="whisper-img" />

**⑩ 完了すると、最後にすべてを連結した文章が表示されます。**

:::tip
##### 💡 コピー方法に注意
表示された文字起こし結果は `Ctrl+C` ではコピーされません。**マウスで結果を選択し、右クリック →「選択した内容をコピーする」** を選んでください。

<img src="/img/whisper-copy.png" alt="選択してコピー" class="whisper-img" />
:::

コピーしたテキストを Word などに貼り付けてご利用ください。

<img src="/img/whisper-finished.png" alt="文字起こし完了" class="whisper-img" />

### 続けて実行する場合

別の音声ファイルを文字起こししたい場合は、ブラウザの再読み込みボタンを押すか、再生ボタンで再度実行できます。

<img src="/img/whisper-restart.png" alt="再実行ボタン" class="whisper-img" />

うまく行かない場合は、メニューバーから「ランタイム」→「ランタイムを再実行」を押し、上記④⑤の手順で GPU に設定し直してから再実行してください。

:::caution
##### ⏱ 制限時間に注意
Google Colab 無償版には利用制限があり、最長12時間(実質4〜5時間で終了する場合も)で処理が強制終了します。文字起こしがきちんと進んでいることが確認できて、かつ途中で時間制限に達したようなエラーが表示された場合は、時間制限の可能性が高いです。ブラウザを再読み込みして再度実行するとうまく最後まで文字起こしが完了することもありますので、何度か試してみてください。もしどうしても制限時間が足りないようでしたら、Google Colab Pro へのアップグレードで解決する場合もあります。
:::

### 注意事項

- アップロードしたファイルの内容や文字起こし結果は、私からは一切見られません。アクセスログも取得していません。
- Google は情報を取得できる可能性があります。機密性の高い情報の場合は、ご自身の PC に Whisper をインストールしてご利用ください。
- ご利用に際して何らかの問題が生じた場合でも、私の方では責任を負えません。

## 制限時間を延ばしたい場合(Google Colab Pro)

処理の速度を上げたり制限時間を延ばしたい場合は、[Google Colab Pro](https://colab.research.google.com/signup) もしくは Pro+ を契約することで可能になります。

| プラン | 月額料金(記事執筆時点) | 特徴 |
|--------|------------------------|------|
| 無償版 | 無料 | 最長12時間(実質4〜5時間) |
| Pro | 約1,200円 | 高速GPU、最大100回分 |
| Pro+ | 約6,000円 | さらに高速、より長い制限時間 |

条件にもよりますが、Pro で約2時間の音声(約80MB)を文字起こししたところ、Google Drive からの読み込みに約10分、文字起こし完了までに約33分かかりました(令和4年9月時点)。

Pro を一度契約すると1ヶ月間(最大100回分)使えます。なお、一度契約すると**毎月自動的に支払い**がなされてしまうため、解約を忘れないようにしてください。クレジットカードでの支払いが済んだら早めに [Google Colab の解約ページ](https://colab.research.google.com/signup) から解約手続きをしておくとよいでしょう。すぐ解約しても1ヶ月間は使えます。

---

参考までに、令和4年9月時点で私が約2時間の音声(約80MB)を文字起こしした際は、Pro で約33分で完了しました(ファイル転送時間を除く)。

import WhisperStyles from '@/components/WhisperStyles.astro';

<WhisperStyles />