Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

呼びかけの言葉(wake word)で聞き取りを始め、話し終わりで止める

Offen
#11 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
35/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
go
Bereich
embedded-iot

Rechercherichtung

Start with docs/avatar-build-wsl.md to check whether its v1.8 firmware build steps still work for v1.17, and inspect the firmware’s on_vad_change handling and StopListening() path. Verify whether esp-sr ~2.3.0 includes wn9l_histackchan_tts3, then evaluate wake word recognition, voice activity timeout behavior, and the listed transcription and false-trigger concerns. Done means choosing and implementing a firmware approach that starts listening by wake word and stops after speech ends, with a defined timeout.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

enhancement

やりたいこと

画面をタップせずに、呼びかけの言葉(wake word)で音声コマンドを聞いてもらう。Amazon Echo の「アレクサ」のような使い方にする。

今の動き(2026-10-22 に実機で確認)

  • プリビルドのファーム(stackchan-mcp)は、ESP32-S3 で WakeNet を有効にしてビルドされている。言葉は中国語の「你好小智(ニーハオ・シャオジー)」(sdkconfig.defaults.esp32s3 の CONFIG_SR_WN_WN9_NIHAOXIAOZHI_TTS)。
  • 「ニーハオシャオジー」と話しかけると、本体は聞き取りを始めた。ただし、画面をタップするまで聞き取りが終わらなかった。

聞き取りが終わらない理由

  • wake word で始まった聞き取りは自動終了のモード(kListeningModeAutoStop)になる。xiaozhi では、話し終わりを判定して聞き取りを止めるのはサーバーの役目。
  • stackchan-mcp の gateway は、本体が始めた聞き取りでは本体からの listen の stop を待つだけで、話し終わりを判定しない。止める命令を送るツールも無いので、daemon からも止められない。
  • 止まるのは画面のタップか、タップで始めた聞き取り用の 30 秒の安全装置(upstream の kisaragi-mochi/stackchan-mcp#233。wake word の聞き取りにも働く)だけ。

案(どちらもファームのビルドが要る)

  • 呼びかけの言葉を「Hi, Stack Chan」にする。esp-sr に wn9l_histackchan_tts3(CONFIG_SR_WN_WN9L_HISTACKCHAN_TTS3)がある。ファームが使う esp-sr(~2.3.0)に含まれているかは、ビルドで確かめる。
    • 日本語のモデルは「こんにちは ESP」「アイリス」だけで、esp-sr 2.5 以降にしか無い。好きな言葉を設定できる MultiNet は中国語と英語だけ。
  • 話し終わりで聞き取りを止める。本体の AFE はすでに声の有無を判定している(on_vad_change。今は LED を変えるだけ)。自動終了のモードで、声が出たあと 1 秒ほど途切れたら StopListening() を呼ぶ。上限の時間(10 秒など)も設ける。
  • gateway で判定する方法もあるが、gateway は改造しない方針なので採らない。

検討すること

  • ビルドの手順: docs/avatar-build-wsl.md は v1.8 のもの。今の v1.17 で同じ手順が通るか。書き込みはアプリ(0x20000)だけにして、NVS を残す。
  • 文字起こしの先頭に呼びかけの言葉が入る(SEND_WAKE_WORD_DATA が既定で有効)。照合は部分一致なので大きな問題は無いはずだが、精度への影響を試す。無効にするかも決める。
  • テレビや動画の音声での誤反応。夜の睡眠中は wake word を止めるか(タッチセンサーと同じく)。
  • 話している最中に wake word を聞くと発話が止まる(AbortSpeaking)。#8(読み上げの途中で止める)の手段にも使えるか。
  • 話し終わりの判定は upstream に提案できる内容。提案するかは別に決める。
Vorherrschende Sprache
Go
Sterne
1
Forks
0
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus kan/stackchan-cli

Alle Issues in kan/stackchan-cli

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.