0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

完全オフライン日本語文字起こし手順まとめ

0
Last updated at Posted at 2025-11-08

1. 目的と特徴

目的:
マイクから入力された音声を、リアルタイムで日本語テキストに変換する。

特徴:

  • インターネット不要(Voskはローカルで音声認識)
  • Python単体で動作(ブラウザやクラウド不要)
  • 速度が速い・精度は中程度(Whisperより軽量)

2. 環境準備

Python要件:3.8以上
ライブラリvosksounddevice

pip install vosk sounddevice

音声入出力には sounddevice を使用。
認識エンジンは Vosk(Kaldiベース)。


3. 日本語モデルの入手

  1. Vosk公式モデルサイト にアクセス
  2. vosk-model-small-ja-0.22 をダウンロード(日本語軽量モデル)
  3. 解凍してできたフォルダを model/ にリネーム
  4. このフォルダをスクリプトと同じディレクトリに置く

→ ローカルで日本語音声を解析できるようになる。


4. コード解説

(1) モデル・設定

model = Model("model")
rec = KaldiRecognizer(model, 16000)
  • 16000 Hz は標準的な音声認識サンプリングレート。
  • KaldiRecognizerが波形を解析してテキストを生成する。

(2) 音声入力処理

with sd.RawInputStream(..., callback=callback):
  • sounddevice によるリアルタイム録音。
  • 各ブロックごとに callback() が呼ばれる。

(3) コールバック関数

if rec.AcceptWaveform(indata.tobytes()):
    print(json.loads(rec.Result())["text"])
else:
    print(json.loads(rec.PartialResult())["partial"], end="\r")
  • 音声が一定長たまると AcceptWaveform() がTrueになり確定文を出力。
  • 途中経過(partial)はリアルタイムに更新。

5. 実行方法

python realtime_transcribe_vosk.py

起動すると、

Start transcription (Ctrl+C to stop)

が表示され、マイク音声がそのままテキストとして端末上に表示される。


6. 応用・拡張

機能 方法
テキストログ保存 open("log.txt", "a") で書き込み
タイムスタンプ付き datetime.now() を行ごとに追加
GUI化 tkinter または PyQt5
高精度化 Whisperモデルに置き換え(GPU使用可能)

7. まとめ

Voskは軽量でオフライン音声認識に最適。
本スクリプトはPythonだけで動作し、ネット接続が不要なリアルタイム文字起こしを可能にする。

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?