はじめに
OpenAIが提供しているWhisper APIで自動文字起こしできるっぽいので試してみました。
価格は2023年7月20日現在、$0.006/分ですのでかなり安いかなと思います。
1時間の音声で大体50円くらいですね。
コード
Dockerでささっとやりたかったので、ChatGPTに聞いて全部書いてもらいました。
docker compose v2使っています。
FROM python:3.9-slim
# 作業ディレクトリを設定
WORKDIR /app
# 必要なパッケージをインストール
RUN apt-get update && apt-get install -y \
&& rm -rf /var/lib/apt/lists/*
# 必要なPythonのパッケージをインストール
RUN pip install openai
# コンテナ起動時に実行されるコマンドを設定
ENTRYPOINT ["python", "/app/whisper.py"]
compose.yml
services:
web:
build: .
volumes:
- .:/app
env_file:
- ./.env
.env
OPENAI_API_KEY=
whisper.py
import openai
import os
openai.api_key = os.getenv("OPENAI_API_KEY")
audio_file= open("./audio.mp3", "rb")
# response_formatを指定することで文字起こしファイルを作成できる。(デフォルトはjson)
transcript = openai.Audio.transcribe("whisper-1", audio_file, response_format="vtt")
with open("output.vtt", "w", encoding="utf-8") as file:
file.write(transcript)
肝はresponse_format指定するところですね。
詳細は公式ドキュメントを参照してください。
あとは、上記のコードがあるディレクトリに音声ファイルと、空のvttファイルを設置してdocker compose up
すれば完了です。
まとめ
かなり簡単に文字起こしできました。
ただし、Whisper APIは25MBまでのファイルサイズしか受け付けていないため、音声品質を下げたり、良いところでファイルを分割したりは必要になるかと思います。