背景:当前随着人工智能的快速发展,人机交互的热度变得越来越大,作为人机交互的很重要的一部分-----语音交互,逐渐成为当前的热门论点。

语音交互的几大部分组成

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的语音交互及语音唤醒相关推荐

  1. python基于百度sdk语音转文字

    python基于百度sdk语音转文字 1.安装baidu-aip 这样pip install aip: 2.要是不行的话下载"识别.合成 RESTful API Python SDK &qu ...

  2. Python基于百度OCR的疫情防控截图自动分析检查

    通过腾讯文档收集人员信息,下载后,使用Python基于百度OCR对填报的疫情防控截图信息进行识别和统计分析,5分钟搞定每天人工1小时的检查工作量,提高效率,还提高准确率. 前言 疫情期间,各地.各单位 ...

  3. 百度ai文字转语音并下载php源码,一种基于百度AI的网页版在线语音包转文字的方法与流程...

    本发明涉及语音识别技术领域,特别涉及一种基于百度AI的网页版在线语音包转文字的方法. 背景技术: 语音识别技术,也被称为自动语音识别Automatic Speech Recognit1n, (ASR) ...

  4. pycharm中python调用百度aip所遇问题解决方案记录:pip安装时版本报错以及aip导入时报错no module named aip/requests)

    pycharm中python调用百度aip所遇问题解决方案记录:pip安装时版本报错以及aip导入时报错no module named aip/requests pip安装时版本报错 pip升级后安装 ...

  5. Python基于百度AI的人脸识别系统--颜值检测

    基于百度AI的人脸识别系统–颜值检测 刚开始学,觉得好玩就写了这个 主要是分为人脸识别系统的对接,UI的设计 人脸识别系统: 用的百度的AI,其中的AK,SK可以换成自己的,在百度开放平台上注册就能获 ...

  6. 离线语音唤醒 SnowBoy +树莓派语音交互实现语音机器人

    离线语音唤醒引擎SnowBoy可以实现离线语音热词的检测,可发起一个安全.完整的语音交互界面. 百度云语音识别API可实现在线的语音识别和语音合成功能.结合离线语音唤醒和语音识别技术可以实现完整.安全 ...

  7. python——基于百度API实现语音播报功能

    一.环境准备 安装百度python API https://github.com/Baidu-AIP/python-sdk pip install git+https://github.com/Bai ...

  8. python图片识别是否p过_python 基于百度aip库 实现识别图片中的文字

    最终效果 1. 实现环境 win10系统 + pycharm社区版 + anaconda3 2. 实现步骤 step 1. 安装baidu-aip库 step 2. 进入百度ai官网 http://a ...

  9. 中山大学羽毛球场馆自动订场(Python+selenium+百度aip)

    双鸭山南校人太多,小伙伴们日常约球抢不到室内的场馆,只好去室外打.所以趁考完试有时间写了一个自动抢羽毛球场的脚本,网好的时候20秒订场无压力.下面来分享一波这个脚本的一些技术细节(重点讲一下图像降噪和 ...

  10. python使用百度aip文字识别

    一.首先要有百度账号 一般百度账号都是通用的,如果没有可以在百度AI开放平台注册一个账号. 地址:http://ai.baidu.com 二.安装sdk pip install baidu-aip 备 ...

最新文章

  1. 网络安全系列之五十 对Web主目录进行备份
  2. 【流量劫持】躲避 HSTS 的 HTTPS 劫持
  3. ASP.NET MVC中如何实现页面跳转
  4. uCOS-II任务机制
  5. 深度强化学习-DDPG算法原理和实现
  6. PyTorch 1.0 中文文档:torch.utils.dlpack
  7. 使用猫狗大战数据集进行一次完整的TensorFlow训练
  8. 【整理】Laravel中Eloquent ORM 关联关系的操作
  9. PAT刷题笔记-PAT乙1018-锤子剪刀布
  10. 云原生技术的优势是什么?
  11. ERROR: The environment variable VG_GNU_PACKAGE must be set. Aborting.
  12. 全屏窗口指令_在iOS 14系统中,快捷指令原来有多达11种运行方式(上篇)
  13. 如何破解 App 网络代理后出现网络不可用的情况
  14. 两相四线步进电机的驱动
  15. MySQL 数据库备份(完全备份与恢复)
  16. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 解决方法
  17. 使用知用电流探头时如何设置示波器参数
  18. Python多进程反而变慢
  19. 计算机管理无法连接虚拟磁盘服务,win10系统电脑打开磁盘管理出现“无法连接虚拟磁盘服务”的教程...
  20. 互联网医院|智慧医院系统|线上看病购药更便捷

热门文章

  1. Store generated project files externally
  2. yolox:exceeding yolo series in 2021
  3. ubantu apt命令失败
  4. springboot-1-搭建一个springboot项目
  5. 亚里士多德对于知识的分类
  6. Android术语查询软件,术语在线app_术语在线查询_学术术语在线-多特软件站安卓网...
  7. 如何获取filecoin_分析:如何捕获Filecoin的价值?
  8. 好未来 Dolphin-儿童口语表达能力AI自动评测:顶尖AI算法技术与教育理念的有机结合 | 百万人学AI评选
  9. (邀请函)澳大利亚堪培拉留学报告会面签会12月12号在北京理工大学举办
  10. 白糖详细 制造工艺、等级划分、国家标准号和注意事项