マイクに喋りかけて音声をwhisperでリアルタイムに文字起こしする

2024年4月24日

whisper-mic

インストール

pip install whisper-mic
オプション:
   --model [tiny|base|small|medium|large|large-v2|large-v3]
                                   使用するモデル
   --device [cpu|cuda|mps] 使用するデバイス
   --english 英語モデルを使用するかどうか
   --verbose 詳細な出力を出力するかどうか
   --energy INTEGER マイクが検出するエネルギー レベル
   --dynamic_energy 動的エネルギーを有効にするフラグ
   --pause FLOAT エントリが終了するまでの一時停止時間
   --save_file ファイルを保存するフラグ
   --loop ループするフラグ
   --dictate ディクテーションするフラグ (ループを暗黙的に示します)
   --mic_index INTEGER 使用するマイクのインデックス
   --list_devices デバイスをリストするためのフラグ
   --faster fast_whisper 実装を使用する
   --hallucinate_threshold 幻覚を軽減するには、これを上げます。 より低い
                                   これにより、より頻繁にアクティブ化されます。
   --help このメッセージを表示して終了します。

自動的に言葉を判断します

(venv) D:\WinPython\content\openai-whisper>whisper_mic
[03/13/24 18:16:12] INFO     No mic index provided, using default                                      whisper_mic.py:84
[03/13/24 18:16:14] INFO     Mic setup complete                                                        whisper_mic.py:95
                    INFO     Listening...                                                             whisper_mic.py:214
You said: 今日は何日ですか

続けて文字起こしをしたい場合

(venv) D:\WinPython\content\openai-whisper>whisper_mic --save_file --loop

transcribed_text.txtに出力されます

日本語対応"D:\WinPython\content\openai-whisper\venv\Lib\site-packages\whisper_mic\whisper_mic.py"

result = self.audio_model.transcribe(audio_data)
↓
result = self.audio_model.transcribe(audio_data, language='japanese')
result = self.audio_model.transcribe(audio_data,suppress_tokens="")
↓
result = self.audio_model.transcribe(audio_data,language='japanese',suppress_tokens="")

Python

from whisper_mic.whisper_mic import WhisperMic

mic = WhisperMic(model='base', verbose=True,save_file=True)
mic.listen_loop()

whisper_real_time

GitHub – davabase/whisper_real_time: Real time transcription with OpenAI Whisper.

仮想環境を作成した後 transcribe_demo.pyとrequirements.txtダウンロードして設置

pip install -r requirements.txt

とりあえず日本語対応

result = audio_model.transcribe(audio_np, fp16=torch.cuda.is_available()")

result = audio_model.transcribe(audio_np, fp16=torch.cuda.is_available(), language="ja")
(venv) D:\WinPython\content\openai-whisper>python  transcribe_demo.py --non_english

gui で動かす

マイクに喋りかけてファイルに保存する

Python

Posted by eightban