OpenAIを使って文字起こしをする方法はAPIとオープンソースバージョンの2つがあります。今回はそれぞれのやり方と違いについて解説します。
文字起こしとは?
文字通りですが、音声データを文字にすることです。議事録の作成であったり動画に字幕を付けたりするのに役立ちます。
APIで文字起こし
OpenAIのAPIを使って文字起こしをすることができます。OpenAIのAPIを使えるようにするには以下の記事を読んでください。

やり方
以下のようなコードで文字起こしすることができます。
from openai import OpenAI
client = OpenAI()
audio_file= open("audio.mp3", "rb")
transcription = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file
)
print(transcription.text)modelに音声認識モデルであるwhisperを指定するのがポイントです。
オープンソースで文字起こし
WhisperがGitHubで公開されています。これをインストールすることでPythonのコードを書かずに文字起こしすることができます。
インストール
Whisperを動かすためにはffmpegをインストールする必要があります。
ffmpegの公式ページから自分の環境に合ったものをインストールしてください。私はWindows環境で動かしたので以下のコマンドでインストールしました。
winget install "FFmpeg (Shared)"続いて、Pythonの仮想環境でWhisperをインストールします。numpyのバージョンが合わないのでダウングレードします。
pip install -U openai-whisper
pip install numpy==1.26.4動かし方
Whisperをインストールした仮想環境で以下のコマンドを実行することで動かせます。
whisper audio.mp3Whisperを動かすと5つのファイルが作成されます。
| 拡張子 | 内容 |
|---|---|
| txt | 文字起こしされた文章 |
| tsv | タイミングと発言がタブ区切り |
| srt | 基本の字幕データ |
| vtt | 位置や文字色を拡張できる字幕データ |
| json | tsvをjsonで構造化したデータ |
APIとオープンソースの比較
一長一短なので一概にどちらが良いという訳ではありません。共通しているのは話者の区別ができない点です。議事録のように複数人の会話で誰の発言かが重要な場合はAWSのTranscribeのような別のサービスを検討する必要があります。
| API | オープンソース |
|---|---|
| OpenAIのユーザー登録が必要 | OpenAIのユーザー登録無しで使える |
| 有料 | 無料 |
| 処理性能は一定 | 処理速度はマシン性能に依存する |
| 1つずつ字幕データを作れる | 字幕データを作れる |
| GPT-4oで後処理が行える | 後処理は自作が必要 |
| 話者の区別はできない | 話者の区別はできない |
APIでGPT-4oの後処理ができるのは大きなメリットです。「あ~」や「え~っと」などのフィラーを削除したり音声が不明瞭で正しく文字起こしできなかった箇所を文脈に沿って修正したりすることができます。
まとめ
音声データを簡単に文字起こしすることができました。音声を文字にすることでシステムに組み込みやすくなります。アイディア次第でアプリの幅を広げることができるかもしれません。これを機にチャレンジしてみてはいかがでしょうか?

コメント