2025-05-19 00:16:49 +08:00
|
|
|
|
import asyncio
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def before_wakeup(speaker, text, source):
|
|
|
|
|
|
"""
|
|
|
|
|
|
处理收到的用户消息,并决定是否唤醒小智 AI
|
|
|
|
|
|
|
|
|
|
|
|
- source: 唤醒来源
|
|
|
|
|
|
- 'kws': 关键字唤醒
|
|
|
|
|
|
- 'xiaoai': 小爱同学收到用户指令
|
|
|
|
|
|
"""
|
2025-05-26 21:56:52 +08:00
|
|
|
|
if source == "kws":
|
2025-05-19 00:16:49 +08:00
|
|
|
|
# 播放唤醒提示语
|
|
|
|
|
|
await speaker.play(text="你好主人,我是小智,请问有什么吩咐?")
|
|
|
|
|
|
# 返回 True 唤醒小智 AI
|
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
if source == "xiaoai" and text == "召唤小智":
|
|
|
|
|
|
# 打断原来的小爱同学
|
|
|
|
|
|
await speaker.abort_xiaoai()
|
|
|
|
|
|
# 等待 2 秒,让小爱 TTS 恢复可用
|
|
|
|
|
|
await asyncio.sleep(2)
|
|
|
|
|
|
# 播放唤醒提示语(如果你不使用自带的小爱 TTS,可以去掉上面的延时)
|
|
|
|
|
|
await speaker.play(text="小智来了,主人有什么吩咐?")
|
|
|
|
|
|
# 唤醒小智 AI
|
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def after_wakeup(speaker):
|
|
|
|
|
|
"""
|
|
|
|
|
|
退出唤醒状态
|
|
|
|
|
|
"""
|
|
|
|
|
|
await speaker.play(text="主人再见,拜拜")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
APP_CONFIG = {
|
|
|
|
|
|
"wakeup": {
|
|
|
|
|
|
# 自定义唤醒词列表(英文字母要全小写)
|
|
|
|
|
|
"keywords": [
|
|
|
|
|
|
"天猫精灵",
|
|
|
|
|
|
"小度小度",
|
|
|
|
|
|
"豆包豆包",
|
|
|
|
|
|
"你好小智",
|
|
|
|
|
|
"你好小爱",
|
|
|
|
|
|
"hi siri",
|
|
|
|
|
|
"hey siri",
|
|
|
|
|
|
],
|
|
|
|
|
|
# 静音多久后自动退出唤醒(秒)
|
|
|
|
|
|
"timeout": 20,
|
|
|
|
|
|
# 语音识别结果回调
|
|
|
|
|
|
"before_wakeup": before_wakeup,
|
|
|
|
|
|
# 退出唤醒时的提示语(设置为空可关闭)
|
|
|
|
|
|
"after_wakeup": after_wakeup,
|
|
|
|
|
|
},
|
|
|
|
|
|
"vad": {
|
|
|
|
|
|
# 语音检测阈值(0-1,越小越灵敏)
|
|
|
|
|
|
"threshold": 0.10,
|
|
|
|
|
|
# 最小语音时长(ms)
|
|
|
|
|
|
"min_speech_duration": 250,
|
|
|
|
|
|
# 最小静默时长(ms)
|
|
|
|
|
|
"min_silence_duration": 500,
|
|
|
|
|
|
},
|
|
|
|
|
|
"xiaozhi": {
|
|
|
|
|
|
"OTA_URL": "https://api.tenclass.net/xiaozhi/ota/",
|
|
|
|
|
|
"WEBSOCKET_URL": "wss://api.tenclass.net/xiaozhi/v1/",
|
2025-06-16 21:52:29 +08:00
|
|
|
|
"WEBSOCKET_ACCESS_TOKEN": "", #(可选)一般用不到这个值
|
|
|
|
|
|
"DEVICE_ID": "", #(可选)默认自动生成
|
|
|
|
|
|
"VERIFICATION_CODE": "", # 首次登陆时,验证码会在这里更新
|
2025-05-19 00:16:49 +08:00
|
|
|
|
},
|
2025-05-11 15:12:15 +08:00
|
|
|
|
}
|