Claudeで「文字おこしウェブサーバ&アプリ」を作成する流れ

 最近はGeForce RTX3090を買ってローカルLLM走らせて遊んだり色々やっていて、その流れで「Claudeが凄いらしい」と聞いてチャレンジしたところ、本当に凄かったので記録。
 結論から言うと「Claude無料版ですら、1文字も自分でコーディングすることなく、音声ファイルからテキスト情報を抽出するウェブサービス&ローカル用GUIアプリを作れてしまった」です。


 以下、流れを解説。
 書いている内容が理解できなくても、そのまま分からない箇所をAIにぶん投げれば、たぶん詳しく教えてくれるよ。

・事前準備
Claudeのアカウント登録をしてログインしておく。
https://claude.ai/

Python 3.11.0をインストールしておく。パス通しも忘れずに。
https://www.python.org/downloads/release/python-3110/

いろんな音声データを読むためにFFMPEGも入れておく
https://www.ffmpeg.org/

ついでにテスト用音声ファイルをずんだもんで作るのがオススメ。
https://www.voicevox.su-shiki.com/

・Pythonの環境設定
 以下のコマンドで実行環境に入り、必要モジュールを導入する。

python -m venv kotoba-server
cd kotoba-server\scripts
activate.bat
pip install librosa numpy torch transformers flask

 既にPythonがたくさん入っていて特定バージョンにパスを通せない人は
C:\>%HOMEPATH%\Appdata\Local\Programs\Python\Python311\python.exe -m venv kotoba-server
みたいな書き方で良いと思う。

・最低限の確認事項
 Claudeにはプログラミング言語Pythonのコードを出力させる。
 日本語にチューニングされたkotoba-whisper-v2.2 文字認識AIモデルを利用する。
 PCにはGeForce RTXシリーズのグラフィックボードが搭載されていることを想定。

・Claudeへの指示1回目
self.processor = AutoProcessor.from_pretrained(“kotoba-tech/kotoba-whisper-v2.2”)
self.model = AutoModelForSpeechSeq2Seq.from_pretrained(“kotoba-tech/kotoba-whisper-v2.2”)
self.model.to(device)
上記コードのように音声認識AIモデルをロードし、与えられた音声ファイルから文字おこしを行うウェブアプリのpythonコードを生成。
提供方法は http://ipaddress:12345 のようにポート12345でウェブブラウザからアクセスし、この画面で音声ファイルのアップロードや生成テキストをエディトボックスに出力できるようにする。

(指示内容の解説)
 この聞き方をすることで、自力で文字認識プログラムを生成するのではなく、kotoba-whisper-v2.2モデルを使う前提でコードが生成される。
(要求の時点でいきなり最低限のコードが生成される)
 ただし、バッファリングアルゴリズムが不完全で数秒程度の文字おこしをしたタイミングで中断してしまう。

・Claudeへの指示2回目
 正常に動作しましたが、数秒程度で文字生成が中断されてしまうので、音声データをバッファリングして全データを文字おこししてください。おそらくAIエンジンのバグで文末に「ごめん」が出力されるので、それも除去してください。

(指示内容の解説)
 この指示によって、音声データを処理できるサイズごとに分割しながらAIモデルに音声データを渡すようアルゴリズムが修正される。
 ちなみに無音を「ごめん」という文字にしてしまうのはkotoba-whisper-v2.2の仕様らしい。

・Claudeへの指示3回目
Ollama+OpenWebUI実行中にこの文字おこしプログラムを起動するとCUDA available: Falseが返ります

(指示内容の解説)
 Ollamaを常駐させているような「GPU占有状態」で実行するとCUDAがエラーを返していたため、CPU判定処理の追加を要求。
 これでGPUの無い環境でも「CPUパワーだけで文字変換」が可能になった。
※変換にかなり時間がかかるので、可能であればGPUを使って変換する方が良い。

・最終的に生成されたコードで動作テストを行う
 生成されたコードを kotoba-server.py と名前を付け、kotoba-server\scripts フォルダに保存(ダウンロードは後述リンク参照)
 activate.batの後に kotoba-server.py を実行しサーバマシン自身で
http://localhost:12345
 のように直アクセスして動作テストを行う。
※初回起動はkotoba-whisper-v2.2の3GBほどダウンロードが入るので注意。

(動作する様子)

 数回Claudeに命令しただけで、音声ファイルから文字おこしウェブサービスを生成できてしまった。
 ちなみに最初の指示を「kotoba-whisper-v2.2のAIモデルを用いて、音声ファイルから文字おこしをするGUIアプリのpythonコードを生成」と、ウェブサービスではなくPC用GUIアプリのコードを出すように要求すると――

 こんな具合にローカル動作するGUIアプリまでアッサリと生成完了。
 ウェブサーバ版・GUIアプリ版のソースコードは以下のリンクからどうぞ。
Download : claude-kotoba-python.zip

~追記 THE 副産物~
 kotoba-whisper-v2.2のAIエンジンが複数人での会話を想定しているおかげで、ドラマCDの文字おこしが地味に出来たりする。
 無論、固有名詞や特殊単語がガバガバだったりバッファリング連結部分の文字が飛んだりするので万能ではないけれど、色々と使い道があるかも。