注釈
こんにちは、SunFounder Raspberry Pi & Arduino & ESP32 愛好者コミュニティへようこそ! Raspberry Pi、Arduino、ESP32 について、他の愛好者と一緒に深く掘り下げて学びましょう。
参加する理由は?
専門的なサポート: 購入後の問題や技術的な課題を、コミュニティやチームの助けを借りて解決できます。
学びと共有: スキルを高めるためのヒントやチュートリアルを交換しましょう。
限定プレビュー: 新しい製品発表や先行プレビューに早期アクセスできます。
特別割引: 最新製品に対する独占的な割引を楽しめます。
祝典プロモーションとプレゼント: プレゼントキャンペーンや季節ごとのプロモーションに参加できます。
👉 私たちと一緒に探求し、創造する準備はできましたか? [ここ] をクリックして、今すぐ参加しましょう!
15. STT (音声認識)
この例では、PiCrawler で STT (音声認識) モジュールを使用する方法を示します。 ロボットは内蔵マイクを通してあなたの声を聞き、リアルタイムでテキストに変換します。
コードの実行
cd ~/picrawler/examples
sudo python3 15_stt.py
プログラムを実行すると、言語設定とプロンプトが表示されます。 ロボットが聞き取りを開始します — マイクに向かって話すと、認識された テキストがターミナルに表示されます。
音声が検出されない場合は、(no speech detected) と表示されます。
Ctrl+C で終了します。
事前準備
以下が完了していることを確認してください:
すべてのモジュールをインストールする(重要) —
robot-hat、vilib、picrawlerモジュールをインストールし、スクリプトi2samp.shを実行します。
コード
注釈
以下のコードを 変更/リセット/コピー/実行/停止 できます。ただし、その前に
picrawler\examples のようなソースコードのパスに移動する必要があります。
コードを変更した後、直接実行して効果を確認できます。
#!/usr/bin/env python3
from robot_hat.stt import STT
# sunfounder_voice_assistant STT モジュールを使用した音声認識デモ
# Ctrl+C で終了します
# 言語設定: "en-us", "zh-cn" など
LANGUAGE = "en-us"
def main():
print("=== PiCrawler 音声認識デモ ===")
print(f"言語: {LANGUAGE}")
print("Ctrl+C で終了します")
print()
stt = STT(language=LANGUAGE)
try:
while True:
print("聞き取り中... (話しかけてください)")
text = stt.listen()
if text:
print(f">>> {text}")
else:
print("(音声が検出されませんでした)")
except KeyboardInterrupt:
print("\n終了中...")
if __name__ == "__main__":
main()
仕組み
STT モジュールのインポート
from robot_hat.stt import STT
STTクラスはrobot_hatパッケージの一部です。低レベルの オーディオキャプチャと音声認識処理をすべて処理します。言語の設定
LANGUAGE = "en-us"
LANGUAGE変数で認識言語を設定します。必要に応じて"zh-cn"(中国語) などの他のサポートコードに変更できます。STT インスタンスの作成
stt = STT(language=LANGUAGE)
選択した言語用に設定された STT オブジェクトを作成します。このオブジェクトは マイクと音声認識エンジンを初期化します。
聞き取りループ
while True: print("聞き取り中... (話しかけてください)") text = stt.listen() if text: print(f">>> {text}") else: print("(音声が検出されませんでした)")
プログラムは無限ループを実行し、各反復で:
ユーザーに話すよう促します。
stt.listen()を呼び出し、音声が検出されて処理されるまでブロックします。認識されたテキストを文字列として返すか、何も理解できなかった場合は
None/ 空文字列を返します。結果をターミナルに表示します。
正常終了
except KeyboardInterrupt: print("\n終了中...")
Ctrl+C を押すと
KeyboardInterruptが発生し、終了メッセージを 表示してプログラムをクリーンに終了します。