From d83f5a19cbd9bd68086ffd6baf28cb026cd46aaa Mon Sep 17 00:00:00 2001 From: mkbk Date: Thu, 18 Jun 2026 14:10:34 +0800 Subject: [PATCH] =?UTF-8?q?[=E7=BB=93=E6=9D=9F=E6=8F=90=E7=A4=BA=E9=9F=B3?= =?UTF-8?q?=E4=BC=98=E5=8C=96]=EF=BC=9A=E5=AE=8C=E6=88=90Codex=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E9=9F=B3=E8=B5=84=E4=BA=A7=E5=86=85=E7=BD=AE=EF=BC=8C?= =?UTF-8?q?=E5=8C=85=E5=90=AB=E9=9F=B3=E9=A2=91=E6=8F=90=E5=8F=96=E3=80=81?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E9=BB=98=E8=AE=A4=E5=80=BC=E5=92=8C=E5=9B=9E?= =?UTF-8?q?=E5=BD=92=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 1 + .gitignore | 1 + README.md | 3 +- assets/sounds/codex-notification.wav | Bin 0 -> 164492 bytes src/owner_voice_pet/__init__.py | 3 +- src/owner_voice_pet/assistant_pipeline.py | 5 ++- src/owner_voice_pet/cli.py | 1 + src/owner_voice_pet/config.py | 5 +++ src/owner_voice_pet/runtime.py | 5 ++- src/owner_voice_pet/tts.py | 50 +++++++++++++++++++++- tests/test_cli_acceptance.py | 1 + tests/test_live_runtime.py | 16 +++++++ tests/test_models_config.py | 1 + tests/test_pipeline_llm_tts.py | 18 +++++++- 14 files changed, 102 insertions(+), 8 deletions(-) create mode 100644 assets/sounds/codex-notification.wav diff --git a/.env.example b/.env.example index 2ec029e..e2d7393 100644 --- a/.env.example +++ b/.env.example @@ -46,6 +46,7 @@ OWNER_BARGE_IN_ENABLED=1 OWNER_BARGE_IN_MIN_SPEECH_MS=250 OWNER_BARGE_IN_ECHO_GUARD_MS=500 OWNER_END_CHIME_ENABLED=1 +OWNER_END_CHIME_FILE=assets/sounds/codex-notification.wav OWNER_END_CHIME_FREQUENCY_HZ=880 OWNER_END_CHIME_DURATION_MS=140 OWNER_WAKE_WORD=小杰小杰 diff --git a/.gitignore b/.gitignore index b3e2d90..85fa157 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ __pycache__/ *.py[cod] *.aiff *.wav +!assets/sounds/codex-notification.wav *.flac .pytest_cache/ .mypy_cache/ diff --git a/README.md b/README.md index f477c3a..47c772c 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,7 @@ OWNER_BARGE_IN_ENABLED=1 OWNER_BARGE_IN_MIN_SPEECH_MS=250 OWNER_BARGE_IN_ECHO_GUARD_MS=500 OWNER_END_CHIME_ENABLED=1 +OWNER_END_CHIME_FILE=assets/sounds/codex-notification.wav OWNER_END_CHIME_FREQUENCY_HZ=880 OWNER_END_CHIME_DURATION_MS=140 ``` @@ -87,7 +88,7 @@ OWNER_END_CHIME_DURATION_MS=140 `OWNER_BARGE_IN_ENABLED=1` 表示播报中允许打断。播放开始后的 `OWNER_BARGE_IN_ECHO_GUARD_MS=500` 毫秒内忽略麦克风输入,之后如果检测到至少 `OWNER_BARGE_IN_MIN_SPEECH_MS=250` 毫秒有效用户语音,并且 realtime STT 给出有效 partial,就停止剩余播报。上下文只记录已经完整播出的 assistant 句子,未播出的内容不会写入临时历史。 -`OWNER_END_CHIME_ENABLED=1` 表示对话自然结束或追问超时恢复待机前会播放一声本地短提示音。提示音不走 TTS,也不会写入上下文;`OWNER_END_CHIME_FREQUENCY_HZ` 和 `OWNER_END_CHIME_DURATION_MS` 可以调整音高和时长,设置 `OWNER_END_CHIME_ENABLED=0` 可以关闭。 +`OWNER_END_CHIME_ENABLED=1` 表示对话自然结束或追问超时恢复待机前会播放一声项目内置提示音,默认文件是 `assets/sounds/codex-notification.wav`。提示音不走 TTS,也不会写入上下文;如果 `OWNER_END_CHIME_FILE` 指向的文件缺失,会回退到本地合成短音,`OWNER_END_CHIME_FREQUENCY_HZ` 和 `OWNER_END_CHIME_DURATION_MS` 只影响这个回退音。设置 `OWNER_END_CHIME_ENABLED=0` 可以关闭。 ## 本地模型 diff --git a/assets/sounds/codex-notification.wav b/assets/sounds/codex-notification.wav new file mode 100644 index 0000000000000000000000000000000000000000..83004be7e9fc663eaf2adcc9dd9c7cd26c6b23d0 GIT binary patch literal 164492 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

_x@!7@kPYaZ6* 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%0DuBHoffwJ0+R%CeUj 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%0DNm2X?M?2$N7^k^n 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 D`>3>X!P?iqX2 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 XC9!)W`IJ^Gze~nvr80VqLb>q2NStwU literal 0 HcmV?d00001 diff --git a/src/owner_voice_pet/__init__.py b/src/owner_voice_pet/__init__.py index d98bbec..6fb3c05 100644 --- a/src/owner_voice_pet/__init__.py +++ b/src/owner_voice_pet/__init__.py @@ -27,7 +27,7 @@ from .llm import MockLlmProvider, OpenAICompatibleLlmProvider from .pipeline import PipelineResult, VoicePipeline from .runtime import LiveVoiceRuntime, RuntimeSummary, TerminalRuntimeReporter, TurnResult, build_live_runtime from .simulation import run_simulated_live -from .tts import CloudTtsProvider, MacSayTtsProvider, SentenceBuffer, SineTtsProvider, make_prompt_chime, sanitize_tts_text +from .tts import CloudTtsProvider, MacSayTtsProvider, SentenceBuffer, SineTtsProvider, make_end_chime, make_prompt_chime, sanitize_tts_text from .assets import validate_pet_assets from .ui import ConsolePetWindow, PetStateController, PetVisualState @@ -70,6 +70,7 @@ __all__ = [ "MacSayTtsProvider", "SentenceBuffer", "SineTtsProvider", + "make_end_chime", "make_prompt_chime", "sanitize_tts_text", "validate_pet_assets", diff --git a/src/owner_voice_pet/assistant_pipeline.py b/src/owner_voice_pet/assistant_pipeline.py index bb33741..5c0accd 100644 --- a/src/owner_voice_pet/assistant_pipeline.py +++ b/src/owner_voice_pet/assistant_pipeline.py @@ -47,7 +47,7 @@ from .protocols import ( WakeWordProvider, ) from .stt import is_valid_transcript_text -from .tts import SentenceBuffer, make_prompt_chime, sanitize_tts_text +from .tts import SentenceBuffer, make_end_chime, sanitize_tts_text from .vad import VadRecorder @@ -491,7 +491,8 @@ class TurnController: def _play_end_chime(self) -> None: if not self.config.end_chime_enabled: return - segment = make_prompt_chime( + segment = make_end_chime( + file_path=self.config.end_chime_file, frequency_hz=self.config.end_chime_frequency_hz, duration_ms=self.config.end_chime_duration_ms, sample_rate=self.config.sample_rate, diff --git a/src/owner_voice_pet/cli.py b/src/owner_voice_pet/cli.py index b3f0cfc..2b86bca 100644 --- a/src/owner_voice_pet/cli.py +++ b/src/owner_voice_pet/cli.py @@ -105,6 +105,7 @@ def main(argv: list[str] | None = None) -> int: "barge_in_min_speech_ms": config.barge_in_min_speech_ms, "barge_in_echo_guard_ms": config.barge_in_echo_guard_ms, "end_chime_enabled": config.end_chime_enabled, + "end_chime_file": str(config.end_chime_file), "end_chime_frequency_hz": config.end_chime_frequency_hz, "end_chime_duration_ms": config.end_chime_duration_ms, }, diff --git a/src/owner_voice_pet/config.py b/src/owner_voice_pet/config.py index ce65442..1d48b3c 100644 --- a/src/owner_voice_pet/config.py +++ b/src/owner_voice_pet/config.py @@ -60,6 +60,7 @@ class AppConfig: barge_in_min_speech_ms: int = 250 barge_in_echo_guard_ms: int = 500 end_chime_enabled: bool = True + end_chime_file: Path = Path("assets/sounds/codex-notification.wav") end_chime_frequency_hz: int = 880 end_chime_duration_ms: int = 140 @@ -134,6 +135,10 @@ class AppConfig: barge_in_min_speech_ms=int(get("BARGE_IN_MIN_SPEECH_MS", "250") or "250"), barge_in_echo_guard_ms=int(get("BARGE_IN_ECHO_GUARD_MS", "500") or "500"), end_chime_enabled=(get("END_CHIME_ENABLED", "1") or "1").lower() not in {"0", "false", "no"}, + end_chime_file=Path( + get("END_CHIME_FILE", "assets/sounds/codex-notification.wav") + or "assets/sounds/codex-notification.wav" + ), end_chime_frequency_hz=int(get("END_CHIME_FREQUENCY_HZ", "880") or "880"), end_chime_duration_ms=int(get("END_CHIME_DURATION_MS", "140") or "140"), ) diff --git a/src/owner_voice_pet/runtime.py b/src/owner_voice_pet/runtime.py index 8be13c0..9b845e2 100644 --- a/src/owner_voice_pet/runtime.py +++ b/src/owner_voice_pet/runtime.py @@ -33,7 +33,7 @@ from .models import AudioSegment, ErrorCode, PipelineState, ProviderError from .protocols import AudioTransport, LlmProvider, RealtimeSttProvider, SttProvider, TtsProvider, WakeWordProvider from .stt import CloudAsrSttProvider, SherpaOnnxSttProvider, is_valid_transcript_text from .transport import SoundDeviceAudioTransport -from .tts import CloudTtsProvider, MacSayTtsProvider, SentenceBuffer, make_prompt_chime, sanitize_tts_text +from .tts import CloudTtsProvider, MacSayTtsProvider, SentenceBuffer, make_end_chime, sanitize_tts_text from .vad import EnergyVadProvider, HybridVadProvider, PrimarySpeakerVadRecorder, SherpaOnnxVadProvider, VadRecorder from .wakeword import SherpaOnnxKeywordWakeWordProvider @@ -343,7 +343,8 @@ class LiveVoiceRuntime: def _play_end_chime(self) -> None: if not self.config.end_chime_enabled: return - segment = make_prompt_chime( + segment = make_end_chime( + file_path=self.config.end_chime_file, frequency_hz=self.config.end_chime_frequency_hz, duration_ms=self.config.end_chime_duration_ms, sample_rate=self.config.sample_rate, diff --git a/src/owner_voice_pet/tts.py b/src/owner_voice_pet/tts.py index de2dfd5..31a7f87 100644 --- a/src/owner_voice_pet/tts.py +++ b/src/owner_voice_pet/tts.py @@ -170,7 +170,55 @@ def make_prompt_chime( channels, 0, duration_ms, - {"chime": "end", "text": "end_chime"}, + {"chime": "end", "text": "end_chime", "source": "synthetic"}, + ) + + +def make_end_chime( + *, + file_path: str | Path | None = None, + frequency_hz: int = 880, + duration_ms: int = 140, + sample_rate: int = 16000, + channels: int = 1, +) -> AudioSegment: + if file_path is not None: + segment = _load_chime_file(Path(file_path)) + if segment is not None: + return segment + return make_prompt_chime( + frequency_hz=frequency_hz, + duration_ms=duration_ms, + sample_rate=sample_rate, + channels=channels, + ) + + +def _load_chime_file(path: Path) -> AudioSegment | None: + if not path.is_file(): + return None + data = path.read_bytes() + if not data: + return None + suffix = path.suffix.lower().lstrip(".") or "wav" + sample_rate = 16000 + channels = 1 + duration_ms = 120 + if suffix == "wav": + try: + with wave.open(str(path), "rb") as handle: + sample_rate = handle.getframerate() + channels = handle.getnchannels() + duration_ms = int(handle.getnframes() / max(1, sample_rate) * 1000) + except wave.Error: + pass + return AudioSegment( + data, + sample_rate, + channels, + 0, + max(20, duration_ms), + {"chime": "end", "text": "end_chime", "format": suffix, "path": str(path), "source": "file"}, ) diff --git a/tests/test_cli_acceptance.py b/tests/test_cli_acceptance.py index 4f6eca0..fed19d2 100644 --- a/tests/test_cli_acceptance.py +++ b/tests/test_cli_acceptance.py @@ -47,6 +47,7 @@ class CliAcceptanceTests(unittest.TestCase): self.assertEqual(data["realtime_transcript_idle_timeout_ms"], 1500) self.assertEqual(data["context_mode"], "session_memory") self.assertTrue(data["end_chime_enabled"]) + self.assertEqual(data["end_chime_file"], "assets/sounds/codex-notification.wav") self.assertEqual(data["end_chime_duration_ms"], 140) self.assertNotIn("secret-value", str(data)) diff --git a/tests/test_live_runtime.py b/tests/test_live_runtime.py index 0ade4fb..93c3bac 100644 --- a/tests/test_live_runtime.py +++ b/tests/test_live_runtime.py @@ -272,7 +272,9 @@ class LiveRuntimeTests(unittest.TestCase): self.assertEqual(len(transport.played_segments), 6) self.assertEqual(transport.flush_count, 6) self.assertEqual(transport.played_segments[2].metadata["chime"], "end") + self.assertEqual(transport.played_segments[2].metadata["source"], "file") self.assertEqual(transport.played_segments[5].metadata["chime"], "end") + self.assertEqual(transport.played_segments[5].metadata["source"], "file") self.assertEqual(reporter.transcripts, ["第一问", "第二问"]) self.assertIn("应答中:我在", reporter.statuses) self.assertLess(reporter.statuses.index("唤醒命中"), reporter.statuses.index("应答中:我在")) @@ -339,6 +341,7 @@ class LiveRuntimeTests(unittest.TestCase): self.assertEqual(len(stt.calls), 1) self.assertEqual(transport.flush_count, 3) self.assertEqual(transport.played_segments[-1].metadata["chime"], "end") + self.assertEqual(transport.played_segments[-1].metadata["source"], "file") def test_no_ack_text_does_not_drain_before_capture(self) -> None: runtime, stt, _, transport, reporter = make_runtime(["第一问"], wake_ack_text="") @@ -351,6 +354,18 @@ class LiveRuntimeTests(unittest.TestCase): self.assertEqual(len(transport.played_segments), 2) self.assertEqual(transport.flush_count, 2) self.assertEqual(transport.played_segments[-1].metadata["chime"], "end") + self.assertEqual(transport.played_segments[-1].metadata["source"], "file") + + def test_end_chime_can_be_disabled(self) -> None: + runtime, _, _, transport, _ = make_runtime(["第一问"], wake_ack_text="") + runtime.config = AppConfig(llm_api_key="secret", speech_provider="cloud", wake_ack_text="", end_chime_enabled=False) + runtime.controller.config = runtime.config + + summary = runtime.run(max_turns=1) + + self.assertEqual(summary.completed_turns, 1) + self.assertEqual(len(transport.played_segments), 1) + self.assertNotIn("chime", transport.played_segments[-1].metadata) def test_temporary_context_is_sent_to_second_llm_call(self) -> None: runtime, _, llm, _, _ = make_runtime(["第一问", "第二问"]) @@ -598,6 +613,7 @@ class LiveRuntimeTests(unittest.TestCase): self.assertEqual(event_types[-1], STANDBY_RESUMED) self.assertEqual(len(llm.calls), 1) self.assertEqual(transport.played_segments[-1].metadata["chime"], "end") + self.assertEqual(transport.played_segments[-1].metadata["source"], "file") def test_completed_reply_returns_to_standby_without_cloud_classifier_delay(self) -> None: frames = [wake_frame(0, 0)] diff --git a/tests/test_models_config.py b/tests/test_models_config.py index 9eec226..e021e3c 100644 --- a/tests/test_models_config.py +++ b/tests/test_models_config.py @@ -114,6 +114,7 @@ class ModelsConfigTests(unittest.TestCase): self.assertEqual(config.barge_in_min_speech_ms, 250) self.assertEqual(config.barge_in_echo_guard_ms, 500) self.assertTrue(config.end_chime_enabled) + self.assertEqual(str(config.end_chime_file), "assets/sounds/codex-notification.wav") self.assertEqual(config.end_chime_frequency_hz, 880) self.assertEqual(config.end_chime_duration_ms, 140) self.assertTrue(config.llm_stream) diff --git a/tests/test_pipeline_llm_tts.py b/tests/test_pipeline_llm_tts.py index 146ece9..360c594 100644 --- a/tests/test_pipeline_llm_tts.py +++ b/tests/test_pipeline_llm_tts.py @@ -12,7 +12,7 @@ from owner_voice_pet.models import AudioFrame, ErrorCode, Message, PipelineState from owner_voice_pet.pipeline import VoicePipeline from owner_voice_pet.stt import MetadataSttProvider from owner_voice_pet.transport import MemoryAudioTransport -from owner_voice_pet.tts import CloudTtsProvider, SentenceBuffer, SineTtsProvider, make_prompt_chime, sanitize_tts_text +from owner_voice_pet.tts import CloudTtsProvider, SentenceBuffer, SineTtsProvider, make_end_chime, make_prompt_chime, sanitize_tts_text from owner_voice_pet.vad import EnergyVadProvider, VadRecorder from owner_voice_pet.wakeword import KeywordWakeWordProvider @@ -78,8 +78,24 @@ class PipelineLlmTtsTests(unittest.TestCase): self.assertEqual(segment.duration_ms, 140) self.assertEqual(segment.metadata["chime"], "end") + self.assertEqual(segment.metadata["source"], "synthetic") self.assertGreater(len(segment.pcm), 0) + def test_end_chime_uses_file_when_present(self) -> None: + segment = make_end_chime(file_path="assets/sounds/codex-notification.wav") + + self.assertEqual(segment.metadata["source"], "file") + self.assertEqual(segment.metadata["path"], "assets/sounds/codex-notification.wav") + self.assertEqual(segment.metadata["format"], "wav") + self.assertGreater(segment.duration_ms, 0) + + def test_end_chime_falls_back_to_synthetic_when_file_missing(self) -> None: + segment = make_end_chime(file_path="/tmp/owner-voice-pet-missing-chime.wav", duration_ms=140) + + self.assertEqual(segment.metadata["source"], "synthetic") + self.assertEqual(segment.metadata["chime"], "end") + self.assertEqual(segment.duration_ms, 140) + def test_cloud_tts_posts_speech_request(self) -> None: class FakeResponse: def __enter__(self):