この Python スクリプトは、指定された音声ファイル(mp4 形式)から、音声をテキストに変換(transcription)し、そのテキストを GPT-4 モデルを使って整理・要約します。
-
リポジトリのクローン まずは、このコードが格納されているリポジトリをローカルにクローンします。
git clone https://github.com/hatenur/Gijiroku.git cd [クローンしたリポジトリのディレクトリ名]
-
環境変数の設定
.env
ファイルをプロジェクトのルートに作成し、API キー等を設定します。例えば、OPENAI_API_KEY=your_openai_api_key
-
必要な Python パッケージのインストール このスクリプトを実行するには、いくつかの Python パッケージが必要です。以下のコマンドで必要なパッケージをインストールします。
pip install -r requirements.txt
-
langchain パッケージのコード修正 このスクリプトを実行するために、Langchain のパッケージのコードを修正する必要がある。 具体的には langchain>document_loaders_parsers_audio.py の OpenAIWhisperPaser>lazy_pase
# この部分を追加 if blob.data is not None: audio = AudioSegment.from_file(io.BytesIO(blob.data)) else: # この部分を追加 audio = AudioSegment.from_file(blob.path)
Langchain のこの時のバージョンでは、音声ファイルのバイナリ自体を渡して、処理することができず、ファイルのパスを読み込むつくりになっていた。 そのためここでは、バイナリファイルを渡されているときは、そのまま使うように修正している
- コマンドラインから実行する場合 コマンドラインから以下のようにスクリプトを実行します。
python gijiroku.py [オプション] mp4_path
引数:
mp4_path
: 音声ファイル(mp4 形式)のパス。これは必須の引数です。
オプション:
-W, --whisper
: Whisper の API を使うか、インストール版を使うかを指定します。デフォルトはapi
です。-G, --gpt
: 使用する GPT モデルを指定します。デフォルトはgpt-3.5-turbo-16k
です。
例:
python gijiroku.py -W api -G gpt-4.0-turbo sample.mp4
この例では、sample.mp4
という音声ファイルを処理し、Whisper の API を使用して音声をテキストに変換した後、gpt-4.0-turbo
モデルを使用してそのテキストを整理・要約します。
- API を実行する場合
UvicornSrever の起動
uvicorn api:app --reload
※reload なので、コードに変更があれば、リフレッシュされる
SampleHTML で試したい場合 http://127.0.0.1:8000/static/index.html
-
音声のテキスト変換結果(transcription) スクリプトは、指定された音声ファイルのテキスト変換結果を
[mp4_path].txt
(例:sample.txt
)という名前のファイルに保存します。 -
GPT-4 による整理・要約結果 スクリプトは、音声のテキスト変換結果を GPT-4 モデルに送信し、整理・要約した結果を
[mp4_path]response.txt
(例:sampleresponse.txt
)という名前のファイルに保存します。
これが、この Python コードの README になります。ユーザーがこのスクリプトを使うために必要な手順と、スクリプトの使い方、そして期待される出力について明確に説明しています。