7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

[Python] Whisper APIを使って文字起こしファイルを生成する

Posted at

はじめに

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までのファイルサイズしか受け付けていないため、音声品質を下げたり、良いところでファイルを分割したりは必要になるかと思います。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?