百度语音识别

官方文档

实现自动化转换格式并且屡试不爽的工具,解压并添加环境变量

链接:https://pan.baidu.com/s/1uU1ZMQJb8LCIvQo7CCxwNw 
提取码:3yaf 

查看配置是否成功

语音合成代码

from aip import AipSpeech

""" 你的 APPID AK SK """
APP_ID = '15842727'
API_KEY = 'gBsfoHWw4pOh9n3sNhwoB853'
SECRET_KEY = '4e0WXxlTo5lMgFu45lLnO490SnnpLQLN'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

def yyhc(text):
    result = client.synthesis(text, 'zh', 1, {
        'vol': 5,
        'spd': 5,
        'pit': 5,
        'per': 5,
    })

    # 识别正确返回语音二进制 错误则返回dict 参照下面错误码
    if not isinstance(result, dict):
        with open('audio.mp3', 'wb') as f:
            f.write(result)

语音识别代码

from aip import AipSpeech
from yyhc_text import yyhc
import os
""" 你的 APPID AK SK """
APP_ID = '15842727'
API_KEY = 'gBsfoHWw4pOh9n3sNhwoB853'
SECRET_KEY = '4e0WXxlTo5lMgFu45lLnO490SnnpLQLN'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

# 读取文件
def get_file_content(filePath):
    os.system(f"ffmpeg -y  -i {filePath}  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filePath}.pcm")
    with open(f"{filePath}.pcm", 'rb') as fp:
        return fp.read()

# 识别本地文件
ret = client.asr(get_file_content('hhxx.wma'), 'pcm', 16000, {
    'dev_pid': 1536,
})

print(ret)
if ret.get("result")[0] == "好好学习天天向上":
    yyhc("学习使我快乐")

 通过录音机录制一段普通户音频(好好学习,天天向上),把音频文件放入到项目中测试

asr函数需要四个参数,第四个参数可以忽略,自有默认值,参照一下这些参数是做什么的

第一个参数: speech 音频文件流 建立包含语音内容的Buffer对象, 语音文件的格式,pcm 或者 wav 或者 amr。(虽说支持这么多格式,但是只有pcm的支持是最好的)

第二个参数: format 文件的格式,包括pcm(不压缩)、wav、amr (虽说支持这么多格式,但是只有pcm的支持是最好的)

第三个参数: rate 音频文件采样率 如果使用刚刚的FFmpeg的命令转换的,你的pcm文件就是16000

第四个参数: dev_pid 音频文件语言id 默认1537(普通话 输入法模型)

成功的dict中 result 就是我们要的识别文本

失败的dict中 err_no 就是我们要的错误编码,错误编码代表什么呢?

 

原文地址:https://www.cnblogs.com/wanglan/p/10595249.html