呼びかけの言葉(wake word)で聞き取りを始め、話し終わりで止める
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- go
- Domaine
- embedded-iot
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
やりたいこと
画面をタップせずに、呼びかけの言葉(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 に提案できる内容。提案するかは別に決める。
- Langage dominant
- Go
- Étoiles
- 1
- Forks
- 0
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de kan/stackchan-cli
-
enhancement
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
kan/stackchan-cli#12 ·
-
ask: claude -p のトークン削減の対策を確かめるOuverteenhancement
Difficulté 3/5 1-2 jours Accessibilité débutants 57/100
kan/stackchan-cli#10 ·
-
enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 30/100
kan/stackchan-cli#9 ·
-
読み上げの途中で発話を止めるOuverteenhancement
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
kan/stackchan-cli#8 ·
-
enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
kan/stackchan-cli#2 · 1 commentaire ·
Toutes les issues de kan/stackchan-cli
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 73/100
prime-radiant-inc/evener#5028 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
-
[BUG] v4.2.9 PostgreSQL 启动迁移失败:DROP INDEX CURRENT_SCHEMA() 语法错误Peut-être pris @renovate l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
OpenListTeam/OpenList#3267 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
'ignore' is called 'deny'Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
openpubkey/opkssh#670 ·
Les mainteneurs répondent en général sous 1 jour