基于python语音唤醒

python实现语音唤醒

语音唤醒代码

没有的库自己pip

# -*- coding: utf-8 -*-
import pvporcupine
import pyaudio   # 录音库
import struct
from playsound import playsound   # 调用电脑进行播放
from TTS import audio
import time

PICOVOICE_API_KEY = "自己的去网站申请秘钥"

porcipine = pvporcupine.create(
    access_key=PICOVOICE_API_KEY,
    keyword_paths=['D:/Py_file/xiaoshuai/ppxiaoshuai.ppn'], # 自己去网站下载自己自定义的模型
)
myaudio = pyaudio.PyAudio()

stream = myaudio.open(
    input_device_index=0,
    rate=porcipine.sample_rate,
    channels=1,
    format=pyaudio.paInt16,
    input=True,
    frames_per_buffer=porcipine.frame_length
)

while True:
    audio_obj = stream.read(porcipine.frame_length, exception_on_overflow=False)
    audio_obj_unpacked = struct.unpack("h" * porcipine.frame_length, audio_obj)

    keyword_idx = porcipine.process(audio_obj_unpacked)
    if keyword_idx >= 0:
        print("识别成功")
        audio(main, "min.mp3")
        time.sleep(0.5)
        playsound("min.mp3")

TTS语音播放

简单用了一下edge_tts TTS语音库,具体你喜欢那个声音你自己去处理(去百度查下能看到音色)

import edge_tts
import asyncio

text = "主人,您找我有什么事"
voice = "zh-CN-XiaoyiNeural"  # 这个可以指定
output_file = "audio.wav"


async def my_function(text, output_file):
    tts = edge_tts.Communicate(text=text, voice=voice)
    await tts.save(output_file)


def audio(text, output_file):
    loop = asyncio.get_event_loop()
    loop.run_until_complete(my_function(text, output_file))

下面具体的扩展,你可以使用
Funasr
Whisper
Kaldi

以上来自B站大佬的学习地址如下:
https://www.bilibili.com/video/BV1Ns4y1m7TH/?spm_id_from=333.880.my_history.page.click&vd_source=c56d9b69c658f05bb1fc6f82627a29ca
https://picovoice.ai/

这个是我最新自己在训练的基于达摩院开源,也分享出来,感觉更家友好:
https://modelscope.cn/models/damo/speech_charctc_kws_phone-xiaoyun/summary

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种广泛使用的编程语言,主要用于数据处理、网络编程、机器学习等领域。语音唤醒是计算机交互的一种方式,通常用于智能手机、智能音箱等设备。在Python中,可以使用语音识别库来实现语音唤醒功能。 一种常用的Python语音唤醒库是SpeechRecognition库。该库提供了Python API,可以用于语音识别和处理语音输入。使用该库,您可以编写代码来识别用户的语音命令,并根据命令执行相应的操作。 要使用SpeechRecognition库实现语音唤醒,您需要以下步骤: 1. 安装SpeechRecognition库:您可以使用pip命令在终端中安装该库。 2. 准备语音数据:您需要收集或录制一些语音数据,并将其保存为音频文件。这些文件将被用作语音唤醒的输入。 3. 编写代码:使用SpeechRecognition库编写代码,以识别用户的语音命令。您可以使用麦克风或其他音频输入设备捕获音频数据,并将其传递给SpeechRecognition库进行处理。 4. 实现唤醒功能:根据您的需求,您可以编写代码来实现语音唤醒功能。例如,当用户说出特定的唤醒词时,您的代码可以触发相应的操作。 下面是一个简单的示例代码,演示如何使用SpeechRecognition库实现语音唤醒功能: ```python import speech_recognition as sr # 创建Recognizer对象 r = sr.Recognizer() # 从麦克风捕获音频数据 with sr.Microphone() as source: print("请说唤醒词...") audio = r.listen(source) # 使用Google语音识别引擎进行识别 try: print("识别结果:") print(r.recognize_google(audio, language='zh-CN')) except sr.UnknownValueError: print("无法识别音频") except sr.RequestError as e: print("Google Speech Recognition服务出错;{0}".format(e)) ``` 在这个示例中,我们使用麦克风捕获音频数据,并使用Google语音识别引擎进行识别。当用户说出特定的唤醒词时,代码将输出识别结果。您可以根据您的需求修改代码,以实现更复杂的语音唤醒功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值