-
人工智能API调用 - 实现语音合成,语音识别,语音聊天机器人
人工智能 - 语音合成,语音识别,语音聊天机器人
现成的AI算法平台http://ai.baidu.com/
语音合成
根据百度大佬提供的文档,作出以下小栗子:
1.下载
pip install baidu-aip
2.代码
from aip import AipSpeech """ 你的 APPID AK SK 控制台 -> 百度语音-> 创建或管理应用 """ APP_ID = '15837844' API_KEY = '411VNGbuZVbDNZU78LqTzfsV' SECRET_KEY = '84AnwR2NARGMqnC6WFnzqQL9WWdWh5bW' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) # 实例化 def text2audio(text): """一些参数的配置,详见文档""" result = client.synthesis(text, 'zh', 1, { 'vol': 5, 'per': 4, 'spd': 4, 'pit': 7, }) # 识别正确返回语音二进制 错误则返回dict 参照下面错误码 if not isinstance(result, dict): print(result) with open('audio.mp3', 'wb') as f: f.write(result)
语音识别
1.下载 ffmpeg 用于将语音文件转换为pcm格式
链接: https://pan.baidu.com/s/1jonSAa_TG2XuaJEy3iTmHg
密码: w6hk
- pip pip install baidu-aip
3.代码
from aip import AipSpeech import os """ 你的 APPID AK SK """ APP_ID = '15837844' API_KEY = '411VNGbuZVbDNZU78LqTzfsV' SECRET_KEY = '84AnwR2NARGMqnC6WFnzqQL9WWdWh5bW' 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") # 使用ffmpeg转换格式 with open(f"{filePath}.pcm", 'rb') as fp: return fp.read() # 识别本地文件 res = client.asr(get_file_content('wyn.wav'), 'pcm', 16000, { 'dev_pid': 1536, }) print(res.get("result")[0]) # if res.get("result")[0] == "你叫什么名字": # text2audio("我叫银王八")
语音聊天机器人
1.为了更快捷的开发, 我们可以调用福林机器人的API
http://www.tuling123.com/
在福林机器人里自定义机器人部分功能.
2.代码
from aip import AipSpeech from aip import AipNlp # 自然语言处理,词义相似度 import os """ 你的 APPID AK SK """ APP_ID = '15837844' API_KEY = '411VNGbuZVbDNZU78LqTzfsV' SECRET_KEY = '84AnwR2NARGMqnC6WFnzqQL9WWdWh5bW' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) nlp_client = AipNlp(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() """识别本地文件""" res = client.asr(get_file_content('jgxh.wma'), 'pcm', 16000, { 'dev_pid': 1536, }) text = res.get("result")[0] """福林机器人智能回答函数""" import requests def to_tuling(text, uid): data = { "perception": { "inputText": { "text": "北京" } }, "userInfo": { "apiKey": "a4c4a668c9f94d0c928544f95a3c44fb", "userId": "123" } } data["perception"]["inputText"]["text"] = text data["userInfo"]["userId"] = uid res = requests.post("http://openapi.tuling123.com/openapi/api/v2", json=data) # print(res.content) res_json = res.json() text = res_json.get("results")[0].get("values").get("text") print(text) return text """语音相似度判断函数""" def my_nlp(text): if nlp_client.simnet(text, "你叫什么名字").get("score") >= 0.75: A = "我叫如花" return A if nlp_client.simnet(text, "你今年几岁了").get("score") >= 0.75: A = "我今年999岁了" return A A = to_tuling(text, "open123") # 如果不符合自定义条件,那么调用福林机器人API return A """开始执行""" A = my_nlp(text) result = client.synthesis(A, 'zh', 1, { 'vol': 5, 'per': 4, 'spd': 4, 'pit': 7, }) # 识别正确返回语音二进制 错误则返回dict 参照下面错误码 if not isinstance(result, dict): # print(result) with open('audio.mp3', 'wb') as f: f.write(result) """自动执行audio.mp3, 打开软件为默认打开软件""" os.system('audio.mp3')
文章出处:https://www.cnblogs.com/aitree/p/14341162.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
JavaScript判断两个数组相等的四类方法
js如何操作video标签
React实战--利用甘特图和看板,强化Paas平
【记录】正则替换的偏方
前端下载 Blob 类型整理
抽象语法树AST必知必会
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程