Linuxでマイクからの音声を日本語テキストに変換する方法

Linuxでマイクからの音声を日本語テキストに変換するためには、以下の手順を使って音声認識ソフトウェアをインストール・設定することができます。オープンソースの音声認識エンジンやGoogle Cloud Speech-to-Textなど、いくつかの選択肢がありますが、今回はオープンソースの「Vosk」を利用する方法を紹介します。Voskは、ローカルで動作する音声認識ライブラリで、日本語にも対応しています。

必要なもの

  • Linux環境
  • Python
  • Voskライブラリ
  • PyAudio (音声入力に使用)

1. 依存関係のインストール

まず、VoskやPyAudioをインストールするために必要なライブラリをインストールします。

Ctrl + Alt + T でターミナル(真っ黒な画面)を起動して以下を入力する。

sudo apt-get update
sudo apt-get install python3 python3-pip python3-venv portaudio19-dev

2. VoskとPyAudioのインストール

次に、VoskPyAudioをインストールします。

pip3 install vosk PyAudio

3. 日本語モデルのダウンロード

Voskで日本語を扱うために、日本語音声認識モデルをダウンロードします。

mkdir -p ~/vosk-models
cd ~/vosk-models
wget https://alphacephei.com/vosk/models/vosk-model-small-ja-0.22.zip
unzip vosk-model-small-ja-0.22.zip

4. サンプルコードでマイク音声をテキスト化

以下のPythonコードを使って、マイクからの音声を日本語テキストに変換します。

import os
import pyaudio
import wave
import json
from vosk import Model, KaldiRecognizer

# モデルのパスを指定
model_path = os.path.expanduser('~/vosk-models/vosk-model-small-ja-0.22')
model = Model(model_path)

# PyAudioの初期化
p = pyaudio.PyAudio()

# マイクからの音声を設定
stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=8000)
stream.start_stream()

# 認識器の初期化
recognizer = KaldiRecognizer(model, 16000)

print("マイクからの音声をテキスト化します... Ctrl+Cで終了")

# 音声認識のループ
try:
    while True:
        data = stream.read(4000, exception_on_overflow=False)
        if recognizer.AcceptWaveform(data):
            result = json.loads(recognizer.Result())
            print("テキスト:", result['text'])
except KeyboardInterrupt:
    print("終了します...")

# ストリームとPyAudioの終了処理
stream.stop_stream()
stream.close()
p.terminate()

5. 実行方法

上記のスクリプトを保存し、ターミナルから実行します。

python3 speech_to_text.py

マイクに向かって日本語を話すと、それがリアルタイムでテキストに変換され、コンソールに表示されます。

注意点

  • 日本語認識モデルのサイズが大きいため、インターネット接続が必要です。
  • Voskはローカルで動作するため、インターネットに接続しなくても音声認識が可能です。
  • 音声認識の精度は、環境やマイクの質に依存することがあります。

これで、Linux上でマイクから日本語音声をテキストに変換する基本的な方法が実行できます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする