Python简单语音识别并响应

Python简单语音识别并响应

https://www.cnblogs.com/warcraft/p/10112486.html

 

 

 下载最新版pyaudio地址:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio

 

起因是一个工作中喜欢说口头禅的同事,昨天老说“你看看你看看 操不操心”。说了几次之后我就在他说完“你看看”后面续上,“操不操心”。往复多次后,我就想,为啥不用Python识别语音并作出响应,正好没弄过语音识别。

1. 语音转文字

参考Python语音识别终极指南,吐槽一句:质量太差,是最烂的无审查的机翻。引模块中间都没空格importspeech_recognitionassr 应该是import speech_recognition as sr并创建识一个别器类的例子应该是并创建一个识别器类的例子这块都不仅仅是机翻了吧,怎么会拆了词。但是为了了解API足够了。

语音转文字使用谷歌云平台的语音转文字服务[Google Cloud Speech API](https://cloud.google.com/speech/),因为是不需要API密钥的。其实是因为有默认密钥:

def recognize_google(self, audio_data, key=None, language="en-US", show_all=False):
    ...
    if key is None: key = "AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw
    ...

通过另外两个函数参数还可以了解到:lanauage (指定识别的语言),show_all(False返回识别率最高的一条结果,True返回所有识别结果的 json串 字典数据)

安装pip install SpeechRecognition

1.1 本地语音文件识别测试

# coding:utf-8

"""
本地语音文件识别测试
"""
import speech_recognition as sr
import sys

say = '你看看'
r = sr.Recognizer()

# 本地语音测试
harvard = sr.AudioFile(sys.path[0]+'/youseesee.wav')
with harvard as source:
    # 去噪
    r.adjust_for_ambient_noise(source, duration=0.2)
    audio = r.record(source)

# 语音识别
test = r.recognize_google(audio, language="cmn-Hans-CN", show_all=True)
print(test)

# 分析语音
flag = False
for t in test['alternative']:
    print(t)
    if say in t['transcript']:
        flag = True
        break
if flag:
    print('Bingo')

自己录了一段语音youseesee.wav (内容为轻轻(类似悄悄话,声带不强烈震动)说的你看看你看看,持续两秒)。音频文件格式可以是WAV/AIFF/FLAC

AudioFile instance given a WAV/AIFF/FLAC audio file

去噪函数adjust_for_ambient_noise()在音频中取一段噪声(

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值