こんにちは。
今回はChatGPTでもお馴染みのOpenAIが開発したWhisperを使って音声データの文字起こしを試してみました。
とても簡単に使えて、かつ精度も高くて有益だと思ったため、紹介したいと思います。
Whisperを使うためにはOpenAIのアカウントが必要なので、まだアカウントをお持ちでない方は以下の私の過去記事を参考ください。
さて最初にWhisperについて紹介します。
Whisperとは?
OpenAIが開発した音声認識モデルです。
Whisperは有料です。
1分あたり0.006USD(日本円で約0.9円。1ドル149円計算)と、他の有料文字起こしツールと比べると低価格なのも特徴的です。
![](https://tech-useit-wealth.com/wp-content/uploads/2023/10/image.png)
比較例として、Amazon TranscribeとAzure Video Indexerをあげます。
Amazon Transcribeは1分あたり0.03USDです。
![](https://tech-useit-wealth.com/wp-content/uploads/2023/10/image-1.png)
ただし話者認識や字幕機能など、Whisperにはない機能もあるため、その機能に魅力があれば価値はあるでしょう。
続いてAzure Video Indexerです。
![](https://tech-useit-wealth.com/wp-content/uploads/2023/10/image-2.png)
高度なオーディオ分析で1分あたり0.04USDです。
こちらもAmazon Transcribe同様、高機能を備えているため、一概に比較はできませんが、文字起こしという目的で使用することを考えればWhisperがいかに安いかがわかります。
Whisperの実装
まずはお使いの仮想環境などに、OpenAIのライブラリをインストールしましょう。
pip install openai
import openai
audio_file = open("sample.mp3", "rb")
transcript = openai.Audio.transcribe("whisper-1", audio_file)
with open("result.txt", mode="w") as f:
f.write(str(transcript["text"]))
なんとたったこれだけで文字起こしが出来てしまいます。
では実際に試してみましょう。
音声データの作成と文字起こしの実験
私のお気に入り動画のひとつに、「リベラルアーツ大学」というものがあります。
私の生き方に多大な影響を与えてくれたチャンネルであり、当ブログの理念の根底を作ったといっても過言ではありません。
今回はそんなリベ大から以下の動画の音声をまずはmp3ファイルで取得しましょう。
ではこの動画からmp3ファイルで音声のみダウンロードする方法も紹介します。
その前に、まずは必要なライブラリをインストールしましょう。
pip install yt-dlp
そしてコードは以下です。
from yt_dlp import YoutubeDL
option = {
"outtmpl": "%(title)s.%(ext)s",
"format": "bestaudio/best",
"postprocessors": [
{
"key": "FFmpegExtractAudio",
"preferredcodec": "mp3",
"preferredquality": "192",
}
],
}
ydl = YoutubeDL(option)
ydl = YoutubeDL(option)
result = ydl.download(["https://www.youtube.com/watch?v=Ivnd2mRaHkk"])
本題から逸れるため、詳しい解説はしませんが、YouTubeのURLとmp3形式を指定すればダウンロードが始まります。
では最初の開始1分のmp3をWhisperにかけてみます。
結果は以下です。
"""
今日はね人生を幸せにするのは何 複数のコミュニティを持つことの 大切さってことですねそれを話し したいと思います 質問が来ました学長は友達が多 そうですどんなコミュニティに も入った方がいいのでしょうか 学長の人生観含めて教えてください ってことでね話をしていきます 結論なんですけど複数のコミュニティ を持つことはねすごく大切だと思います 無理に持つ必要はないけども できれば複数のコミュニティを 持った方がいいと僕は思います ねもう少し詳しく解説します コミュニティって色々あります よね恋人とか家族とか趣味の友人 とか学生時代の友人とかね仕事 の友人とか色々ありますよね 複数のコミュニティを持つメリット ってあると思うんですね例えば 複数の視点から見ることで客観 的に物事を捉えることができる とかね色んな考え方を取り入れ れたりとか考え方が柔軟になる とかこの考え方さえしていれば 大丈夫って絶対回転はないと思 うんですね
"""
どのぐらいあってるかはぜひ動画と照らし合わせてご確認ください。
私が確認した限りでは、かなり精度高いと思います。
他の有料ツールでも、あきらかに違和感のある誤字がいくつか含まれていたりしますが、Whisperにはほとんどありません。
このAPIを使って議事録ツールやら動画編集ツールやら作れそうですね。
とても簡単に実装できて、高精度な文字起こしが実現できるので、良かったら試してみてください。
ここまでお読みいただきありがとうございました。