python--基于百度aip的语音交互及语音唤醒
背景:当前随着人工智能的快速发展,人机交互的热度变得越来越大,作为人机交互的很重要的一部分-----语音交互,逐渐成为当前的热门论点。
语音交互的几大部分组成
1.获得音频文件----->2.识别音频文件----->3.将音频文件转换为字符串------>4.进行其他相关操作(打开网址,语音对话,指挥机器人.....)
准备阶段,导入相关的库
import pyaudio
import wave
from aip import AipSpeech
import time
以及百度aip注册的密钥
1.使用pyaudio借助电脑麦克风获得音频文件
# -*- coding = utf-8
# @Time : 2022/10/2011:43
# @Author : 夜路难行
# @File : record_sound.py
# @SoftWare : PyCharm
import pyaudio
import waveCHUNK = 1024 #wav文件会将其分成好多个数据包/数据片段
CHANNELS = 1 #声道数
FORMAT= pyaudio.paInt16 #位化深度 2^16
RATE = 16000 #采样率
RECORD_SECONDS = 4def record_sound(FILEPATH) :p = pyaudio.PyAudio()stream = p.open(format=FORMAT,channels=CHANNELS,rate=RATE,input=True,frames_per_buffer=CHUNK)print("开始录音,请说话......")frames = []for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):data = stream.read(CHUNK)frames.append(data)print("录音结束...")stream.stop_stream()stream.close()p.terminate()wf = wave.open(FILEPATH, 'wb')wf.setnchannels(CHANNELS)wf.setsampwidth(p.get_sample_size(FORMAT))wf.setframerate(RATE)wf.writeframes(b''.join(frames))wf.close()
在此需要了解相关的音频知识:
声道数:支持能发出音响的个数
采样率:一秒钟对声音的采集次数
位化深度:
8bit (也就是1字节) 只能记录 256 个数, 也就是只能将振幅划分成 256 个等级;
16bit (也就是2字节) 可以细到 65536 个数, 这已是 CD 标准了;
32bit (也就是4字节) 能把振幅细分到 4294967296 个等级, 实在是没必要了.
paint16,相当于2^16,把音强分为65535个等级。
比特率:每秒的传输速度,kbps == Kilobit pre seconds ,比特率 = 声道数*位化深度*采样率,在百度aip的使用里面必须比特率为256kbps。
2.音频文件转化为字符串
# 读取文件def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()#AIP语音识别res = client.asr(get_file_content(FILEPATH),'wav',16000,{'dev-pid':15372,})#提取字符for key,val in res.items():print(key,val)#转化为列表List = res.get('result')#列表转化为字符串string = '.'.join(List)
这里是通过将百度aip转化后,返回的字典中,将键‘result’对应的值提取出来,然后将其转化为字符串。
dev-pid:对应的是不同语言的识别,这里可以去参考百度文档,找出自己需要的语言转换。
结合这两部就将语音转换完成了,后续的各项功能大家可以正常添加.....
3.语音唤醒
在网上查阅了相关资料发现,我没有找到windows系统下面的百度aip的语音唤醒,但是发现了科大讯飞的语音唤醒,但由于能力有限,目前不知道怎么将科大讯飞的语音唤醒和百度的语音交互联系起来,所以,想到了一个新的方案。
借助语音识别的功能,设置关键词,当识别到关键词的时候进行语音识别功能
def huanxing(FilePath):""" 你的 APPID AK SK """APP_ID = '************'API_KEY = '*************'SECRET_KEY = '********'client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)record_sound.record_sound(FilePath)# 读取文件def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()# AIP语音识别res = client.asr(get_file_content(FilePath), 'wav', 16000, {'dev-pid': 15372, })# 提取字符for key, val in res.items():print(key, val)# 转化为列表List = res.get('result')# 列表转化为字符串string = '.'.join(List)if string == '小黑小黑。' or string == '小黑,你好。':return 1else:time.sleep(2)print("唤醒失败...\n请重新开始语音唤醒")huanxing('huanxing.wav')
python--基于百度aip的语音交互及语音唤醒相关推荐
- python基于百度sdk语音转文字
python基于百度sdk语音转文字 1.安装baidu-aip 这样pip install aip: 2.要是不行的话下载"识别.合成 RESTful API Python SDK &qu ...
- Python基于百度OCR的疫情防控截图自动分析检查
通过腾讯文档收集人员信息,下载后,使用Python基于百度OCR对填报的疫情防控截图信息进行识别和统计分析,5分钟搞定每天人工1小时的检查工作量,提高效率,还提高准确率. 前言 疫情期间,各地.各单位 ...
- 百度ai文字转语音并下载php源码,一种基于百度AI的网页版在线语音包转文字的方法与流程...
本发明涉及语音识别技术领域,特别涉及一种基于百度AI的网页版在线语音包转文字的方法. 背景技术: 语音识别技术,也被称为自动语音识别Automatic Speech Recognit1n, (ASR) ...
- pycharm中python调用百度aip所遇问题解决方案记录:pip安装时版本报错以及aip导入时报错no module named aip/requests)
pycharm中python调用百度aip所遇问题解决方案记录:pip安装时版本报错以及aip导入时报错no module named aip/requests pip安装时版本报错 pip升级后安装 ...
- Python基于百度AI的人脸识别系统--颜值检测
基于百度AI的人脸识别系统–颜值检测 刚开始学,觉得好玩就写了这个 主要是分为人脸识别系统的对接,UI的设计 人脸识别系统: 用的百度的AI,其中的AK,SK可以换成自己的,在百度开放平台上注册就能获 ...
- 离线语音唤醒 SnowBoy +树莓派语音交互实现语音机器人
离线语音唤醒引擎SnowBoy可以实现离线语音热词的检测,可发起一个安全.完整的语音交互界面. 百度云语音识别API可实现在线的语音识别和语音合成功能.结合离线语音唤醒和语音识别技术可以实现完整.安全 ...
- python——基于百度API实现语音播报功能
一.环境准备 安装百度python API https://github.com/Baidu-AIP/python-sdk pip install git+https://github.com/Bai ...
- python图片识别是否p过_python 基于百度aip库 实现识别图片中的文字
最终效果 1. 实现环境 win10系统 + pycharm社区版 + anaconda3 2. 实现步骤 step 1. 安装baidu-aip库 step 2. 进入百度ai官网 http://a ...
- 中山大学羽毛球场馆自动订场(Python+selenium+百度aip)
双鸭山南校人太多,小伙伴们日常约球抢不到室内的场馆,只好去室外打.所以趁考完试有时间写了一个自动抢羽毛球场的脚本,网好的时候20秒订场无压力.下面来分享一波这个脚本的一些技术细节(重点讲一下图像降噪和 ...
- python使用百度aip文字识别
一.首先要有百度账号 一般百度账号都是通用的,如果没有可以在百度AI开放平台注册一个账号. 地址:http://ai.baidu.com 二.安装sdk pip install baidu-aip 备 ...
最新文章
- 网络安全系列之五十 对Web主目录进行备份
- 【流量劫持】躲避 HSTS 的 HTTPS 劫持
- ASP.NET MVC中如何实现页面跳转
- uCOS-II任务机制
- 深度强化学习-DDPG算法原理和实现
- PyTorch 1.0 中文文档:torch.utils.dlpack
- 使用猫狗大战数据集进行一次完整的TensorFlow训练
- 【整理】Laravel中Eloquent ORM 关联关系的操作
- PAT刷题笔记-PAT乙1018-锤子剪刀布
- 云原生技术的优势是什么?
- ERROR: The environment variable VG_GNU_PACKAGE must be set. Aborting.
- 全屏窗口指令_在iOS 14系统中,快捷指令原来有多达11种运行方式(上篇)
- 如何破解 App 网络代理后出现网络不可用的情况
- 两相四线步进电机的驱动
- MySQL 数据库备份(完全备份与恢复)
- To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 解决方法
- 使用知用电流探头时如何设置示波器参数
- Python多进程反而变慢
- 计算机管理无法连接虚拟磁盘服务,win10系统电脑打开磁盘管理出现“无法连接虚拟磁盘服务”的教程...
- 互联网医院|智慧医院系统|线上看病购药更便捷
热门文章
- Store generated project files externally
- yolox:exceeding yolo series in 2021
- ubantu apt命令失败
- springboot-1-搭建一个springboot项目
- 亚里士多德对于知识的分类
- Android术语查询软件,术语在线app_术语在线查询_学术术语在线-多特软件站安卓网...
- 如何获取filecoin_分析:如何捕获Filecoin的价值?
- 好未来 Dolphin-儿童口语表达能力AI自动评测:顶尖AI算法技术与教育理念的有机结合 | 百万人学AI评选
- (邀请函)澳大利亚堪培拉留学报告会面签会12月12号在北京理工大学举办
- 白糖详细 制造工艺、等级划分、国家标准号和注意事项