You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现识别到语音指令含触发词时自动播放指定音频的脚本

语音触发音效脚本实现

前置依赖安装

先安装运行所需的第三方库,执行以下命令:

pip install SpeechRecognition pyaudio playsound pyttsx3

注:如果PyAudio安装失败,可直接下载对应系统版本的whl包本地安装

核心实现代码

程序启动后自动常驻监听麦克风输入,将采集到的语音转写为文本后匹配预设触发词,命中规则则自动播放对应路径的音效文件,和参考逻辑完全对齐:

import speech_recognition as sr
from playsound import playsound
import pyttsx3

# 初始化语音识别器和语音播报引擎
r = sr.Recognizer()
engine = pyttsx3.init()

# 自定义触发词和对应音效路径的映射表,可自行扩展多组规则
trigger_config = {
    "播放歌曲": "./audio/song.mp3",
    "提示": "./audio/alert.wav",
    "结束": "./audio/end.mp3"
}

def run_listen_loop():
    while True:
        with sr.Microphone() as source:
            # 自动校准环境噪音,校准期间保持环境安静即可
            r.adjust_for_ambient_noise(source, duration=1)
            print("正在监听语音指令...")
            audio = r.listen(source)
            try:
                # 识别中文语音,需识别英文可将language参数改为'en-US'
                command_text = r.recognize_google(audio, language='zh-CN').lower()
                print(f"识别到指令:{command_text}")
                # 遍历匹配触发词
                for trigger_word, audio_path in trigger_config.items():
                    if trigger_word in command_text:
                        print(f"命中触发词【{trigger_word}】,正在播放对应音效")
                        playsound(audio_path)
                        # 如需同步语音播报可打开下方两行注释
                        # engine.say(f"已触发{trigger_word}指令")
                        # engine.runAndWait()
                        break
            except sr.UnknownValueError:
                print("未识别到有效语音,继续监听")
            except sr.RequestError:
                print("语音识别服务连接失败,请检查网络后重试")

if __name__ == "__main__":
    run_listen_loop()

使用注意事项

  • 运行脚本前请确认麦克风正常连接,且已授予程序麦克风访问权限
  • 请将trigger_config字典中的键值对替换为实际需要的触发词、本地音效文件的存储路径
  • 如果不需要语音播报功能,可以直接移除pyttsx3相关的初始化和调用代码
  • 若识别灵敏度不符合预期,可调整环境噪音校准时长、语音监听超时阈值适配实际使用场景

内容的提问来源于stack exchange,提问作者Piyush Kushwaha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 05:09:33