人工智能第一篇--语音识别和语音合成
1.什么是人工智能?
顾名思义就是由人创造的"智慧能力",具备听说看理解等能力.
听 ==语音识别
说 ==语音合成
看 ==图像视频文字识别
理解 ==语言(文字)图像视频理解等逻辑处理
思考 ==理解后的逻辑处理
2.目前人工智能做了什么?
语音识别:小米的小爱同学,苹果 的siri,微软的Cortana
语音合成:小米的小爱同学,苹果 的siri,微软的Cortana
图像识别:交通摄像头拍违章,刷脸解锁手机等
视频识别:抖音内容审核,视频社交APP的审核机制
文字识别:从身份证照片提取身份证号码,扫一扫翻译
3.人工智能平台 --百度AI:ai.baidu.com
- 创建一个应用
>>>>>>>>>>>>>>>>>>>>>>>
- 创建好应用后,在查看应用详情时,会有几个重要的信息
- 编辑:可以重新对一些接口的选择
- 查看文档:对各种功能如语音识别,语音合成等等的介绍,使用方法,接口等的描述,通过查看文档可以快速的掌握各种功能
4.语音合成的实例:把文本合成语音
- SDK:就是为某软件专门封装的接口
语音合成文档>>>>>>sdk文档>>>>>>>.Python文档(仔细阅读文档)
1.Python SDK 接口能力:将文字转换成音频文件的技术
2.注意事项 合成文本长度必须小于1024字节,如果本文长度较长,可以采用多次请求的方式。切忌文本长度超过限制
3.安装语音合成Python SDK
- 如果已安装pip,执行
pip install baidu-aip
即可。 - 如果已安装setuptools,执行
python setup.py install
即可。
4.新建AipSpeech
AipSpeech是语音合成的Python SDK客户端,为使用语音合成的开发人员提供了一系列的交互方法。
- 参考如下代码新建一个AipSpeech:
- 参数对应的是,查看应用详情时,里面的几个重要的信息
from aip import AipSpeech """ 你的 APPID AK SK """ APP_ID = '你的 App ID' API_KEY = '你的 Api Key' SECRET_KEY = '你的 Secret Key' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
5.把一段文字合成为语音文件(实例):
result = client.synthesis('你好百度', 'zh', 1, { 'vol': 5, #音量大小 "spd":5, #语速 "pit":5, #语调 "per":1, #情感发音 }) # 识别正确返回语音二进制 错误则返回dict 参照下面错误码 if not isinstance(result, dict): with open('audio.mp3', 'wb') as f: f.write(result)
5. 语音识别:将一个可读的语音文件转换成计算机可识别的字符串序列
- 语音识别文档>>>>>>sdk文档>>>>>>>.Python文档(仔细阅读文档)
- 支持的语音格式
原始 PCM 的录音参数必须符合 8k/16k 采样率、16bit 位深、单声道,支持的格式有:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式)。
- 注意事项:目前系统支持的语音时长上限为60s,请不要超过这个长度,否则会返回错误。
5.1.安装语音合成Python SDK
- 如果已安装pip,执行
pip install baidu-aip
即可。 - 如果已安装setuptools,执行
python setup.py install
即可。
5.2.新建AipSpeech
- 参数对应的是,查看应用详情时,里面的几个重要的信息
from aip import AipSpeech """ 你的 APPID AK SK """ APP_ID = '你的 App ID' API_KEY = '你的 Api Key' SECRET_KEY = '你的 Secret Key' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
- 接口说明:向远程服务上传整段语音进行识别后返回字符串
5.3.要对保存有一段语音的语音文件进行识别(实例):
# 读取文件 def get_file_content(filePath): with open(filePath, 'rb') as fp: return fp.read() # 识别本地文件 ret = client.asr(get_file_content('audio2.pcm'), 'pcm', 16000, { 'dev_pid': 1536, }) print(ret.get('result')[0])#得到语音文件的文本内容
- dev_pid 参数列表
- 音频文件转换格式使用软件ffmpeg,命令为ffmpeg -y -i audio.wav -acodec pcm_s16le -f s16le -ac 1 -ar 16000 audio.pcm
- 使用说明:https://i.cnblogs.com/EditPosts.aspx?opt=1
5.4.自动转换文件格式,然后识别文件 使用os模块
import os from aip import AipSpeech """ 你的 APPID AK SK """ APP_ID = '16027163' API_KEY = 'wFXvuArTz8aWFou05jjs8XIG' SECRET_KEY = 'Ty6jGhtdR9GzCs8smn5HRGNNwtz0QkUQ' 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('2.m4a'), 'pcm', 16000, { 'dev_pid': 1536, }) print(ret.get('result')[0])#得到语音文件的文本内容