注釈
こんにちは、SunFounder Raspberry Pi & Arduino & ESP32 Enthusiast Community on Facebookへようこそ!他の愛好家と一緒に、Raspberry Pi、Arduino、ESP32の世界により深く入り込みましょう。
参加する理由
専門家サポート: 購入後の問題や技術的な課題を、コミュニティと私たちのチームの助けを借りて解決します。
学習と共有: ヒントやチュートリアルを交換して、スキルを向上させましょう。
限定プレビュー: 新製品の発表や先行プレビューに早期アクセスできます。
特別割引: 最新製品を特別割引でお楽しみいただけます。
季節限定キャンペーンとプレゼント: プレゼント企画やホリデーキャンペーンに参加しましょう。
👉 一緒に発見し、創造する準備はできましたか? [こちら] をクリックして、今すぐ参加しましょう!
3. Vosk による STT(オフライン)
Vosk は軽量な speech-to-text(STT)エンジンで、多くの言語に対応しており、Raspberry Pi 上で完全に オフライン で動作します。 インターネット接続が必要なのは、最初に言語モデルをダウンロードするときだけです。その後は、ネットワーク接続なしで利用できます。
このレッスンでは、次の内容を学びます:
Raspberry Pi のマイクを確認する
使用する言語モデルを選び、Vosk をインストールしてテストする
プログラムの実行
cd ~/ai-lab-kit/llm
sudo python3 stt_vosk_stream.py
新しい言語でこのコードを初めて実行すると、Vosk は次の処理を行います:
言語モデルを自動的にダウンロード します(デフォルトでは small 版)。
対応言語の一覧を表示 します。
マイクからの音声入力を 聞き取り開始 します。
ターミナルには次のような表示が出ます:
vosk-model-small-en-us-0.15.zip: 100%|███████████████████| 39.3M/39.3M [00:05<00:00, 7.85MB/s]
['ar', 'ar-tn', 'ca', 'cn', 'cs', 'de', 'en-gb', 'en-in', 'en-us', 'eo', 'es', 'fa', 'fr', 'gu', 'hi', 'it', 'ja', 'ko', 'kz', 'nl', 'pl', 'pt', 'ru', 'sv', 'te', 'tg', 'tr', 'ua', 'uz', 'vn']
Say something
これは次の意味です:
モデルファイル(
vosk-model-small-en-us-0.15)のダウンロードが完了した対応言語の一覧が表示された
システムが音声の聞き取りを開始した — Fusion HAT+ のマイクに向かって話すと、認識されたテキストがターミナルに表示されます
ヒント:
認識精度を上げるには、マイクを 15〜30 cm ほど離して使ってください。
言語やアクセントに合ったモデル を選んでください。
静かな環境で使うと認識しやすくなります。
コード
from fusion_hat.stt import Vosk as STT
stt = STT(language="en-us")
while True:
print("Say something")
for result in stt.listen(stream=True):
if result["done"]:
print(f"final: {result['final']}")
else:
print(f"partial: {result['partial']}", end="\r", flush=True)
コードの説明:
stt.listen(stream=True)— ストリーミング音声認識を開始し、話している途中の結果も順次返します。result["partial"]— リアルタイムの認識結果 を表示します(継続的に更新されます)。result["final"]— 話し終えたときに、 最終的な認識結果 を表示します。このループは継続的に動作するため、 ハンズフリーでのリアルタイム文字起こし が可能です。
ヒント:このストリーミングモードは、 音声アシスタント 、 音声コマンド制御 、 リアルタイム文字起こし に最適です。
トラブルシューティング
No such file or directory(`arecord` 実行時)
カード番号またはデバイス番号が間違っている可能性があります。 次のコマンドを実行してください:
arecord -l表示された USB マイクの番号に合わせて、
1,0の部分を置き換えてください。Vosk が音声を認識しない
言語コード がモデルと一致していることを確認してください(例:英語なら
en-us、中国語ならzh-cn)。マイクは 15〜30 cm ほど離し、周囲の雑音をできるだけ避けてください。
はっきり、ゆっくり話してください。
遅延が大きい / 認識が遅い
デフォルトで自動ダウンロードされるのは small モデル です(高速ですが、精度はやや低めです)。
それでも遅い場合は、他のプログラムを閉じて CPU リソースを確保してください。