はじめに
Whisperを用いて音声文字起こしを行う。
環境
- Ubuntu 22.04 LTS
- Intel Core i9-14900K、メモリ 32GB
- NVIDIA GeForce RTX 4090 (24GB)
- Pi (pi-sandbox) + LM Studio (Qwen3.6 35B A3B)
参考実装
ここ を参考にする。sounddeviceとfaster-whisperを使用。
import sounddevice as sd
from faster_whisper import WhisperModel
# Initialize models
whisper = WhisperModel("turbo", device="cuda", compute_type="float16")
def record_audio(duration=5, sample_rate=16000):
"""Record from microphone."""
print("Listening...")
audio = sd.rec(int(duration * sample_rate),
samplerate=sample_rate, channels=1, dtype="float32")
sd.wait()
return audio.flatten()
def transcribe(audio):
"""Speech to text with faster-whisper."""
segments, _ = whisper.transcribe(audio, beam_size=5)
return " ".join(s.text for s in segments).strip()
# Main loop
while True:
audio = record_audio()
text = transcribe(audio)
if not text:
continue
print(text)
実行すると、最初だけモデルのダウンロードのため時間がかかる。最初の動作確認は"turbo"の代わりに"tiny"のほうがよい。
$ uv venv
$ uv pip install sounddevice faster_whisper torch
$ sudo apt install portaudio19-dev
$ uv run transcribe.py
Listening...
こんにちは
Listening...
今日はいい天気ですね
計画
音声文字起こしコマンドnotetaker.pyを作る。要求定義書PRD.mdを作成。Piと相談しながら詳細を詰めた。
セットアップ
$ uv init notetaker
$ cd notetaker
$ uv add sounddevice faster-whisper numpy torch
開発
Piにおまかせ。ただし、テストは手動でやる。
動作確認
$ mkdir test
$ cd test
$ uv run ../notetaker.py
厚生労働省の動画 【職場における熱中症予防】5.水分塩分同時補給 の音声を文字起こししてみた(スピーカー音声をマイクで聞き取る)。
Output file: note_202608091907.md
Listening... (Ctrl-C to stop)
APIによる自動音声でお伝えします 職場における熱中症予防対策
塩分と塩分は同時に補給。労働者の約半数が、修行前から水分が不足している。
水分は必ず補給しなければなりません 脱水症になっている
...
note_202608091907.md
# 文字起こし記録
作成日時: 2026-08-09 19:07:50
検出言語: ja
---
APIによる自動音声でお伝えします 職場における熱中症予防対策
塩分と塩分は同時に補給。労働者の約半数が、修行前から水分が不足している。
水分は必ず補給しなければなりません 脱水症になっている
...
できたファイルに基本情報をメモして、それをもとに議事録を作る。Piへのプロンプト:
`test/note_202608091907.md`は動画音声の文字起こしです。以下に従って作業してください。
- メモがあればそれを参考にしてください。
- 文字起こしから文脈的に関係ないものを取り除いてください。
- 意味的におかしなところは修正してください。
- 議事録としてポイントを整理してください。
- 整理したものは`test/summary_202608091907.md`として書き出してください。
Pi
test/summary_202608091907.md を作成しました。
主な作業:
- 文字起こしのおかしな部分(「塩分と塩分」「蛍光保水液」「水晶を起こしている」等)を修正
- 閉会の挨拶(「ご視聴ありがとうございました」等)を削除
- 7つのトピックに整理して表形式で提示
- 自宅ドリンクのレシピも記載
summary_202608091907.md
# 議事録: 職場における熱中症予防対策
**出典**: 厚生労働省動画「【職場における熱中症予防】5. 水分・塩分同時補給」
**日時**: 2026-08-09 19:07
**ファイル**: [元の文字起こし](note_202608091907.md)
---
## ポイント
### 1. 脱水チェック方法
- **皮膚ピンチテスト**: 手の甲の皮膚をつまんで離し、元に戻るのに2秒以上かかる場合は脱水の疑い
- **爪の血流テスト**: 親指をつまんで離し、爪の色が白からピンクに戻るのに3秒以上かかる場合は脱水の可能性
- **尿の色**: 尿の色でも脱水状態を確認できる
- 軽い脱水状態では喉の渇きを感じないこともある
...
動画の再生速度は、1.5倍が限界だった。2倍にした場合、録音時間を短くするなどすればある程度対応できるが、「ご視聴ありがとうございました」などの唐突な文言が増える。この文言は文字起こしをする製品(TeamsだったかNotionだったか)で見たことがあるが、Whisperのええかげん出力だったんだなーって、思った。
成果物
参考文献
|