一 flask之百度语音识别,语音合成,tuling机器人

1 百度语音识别,语音合成

1 1 注册百度云
2
3 2 找到百度语音
4
5 3 找到自然语音
6
7 4 看文档写代码

步骤

2 flask创建语音合成(python)

 1 注意:要想使用百度的自然语音,必须下载
 2 1  pip3 install baidu-aip
 3 2  FFmpeg
 4
 5 #语音合成
 6
 7 from aip import AipSpeech
 8
 9 """ 你的 APPID AK SK """
10 APP_ID = '15420336'
11 API_KEY = 'VwSGcqqwsCl282LGKnFwHDIA'
12 SECRET_KEY = 'h4oL6Y9yRuvmD0oSdQGQZchNcix4TF5P'
13
14 client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
15
16 #语音合成
17 result  = client.synthesis('先帝创业未半而中道崩殂', 'zh', 1, {
18     'vol': 5,
19     "spd": 3,
20     "pit": 7,
21     "per": 4
22 })
23 print(result)
24
25 # 识别正确返回语音二进制 错误则返回dict 参照下面错误码
26 if not isinstance(result, dict):
27     with open('audio.mp3', 'wb') as f:
28         f.write(result)
29
30
31
32
33 #注意  管理应用
34
35 #""" 你的 APPID AK SK """
36 #APP_ID = '你的 App ID'
37 #API_KEY = '你的 Api Key'
38 #SECRET_KEY = '你的 Secret Key'
39 #详细请看文档

语音合成

3 flask创建语音识别(python)

from aip import AipSpeech
import os""" 你的 APPID AK SK """
APP_ID = '15420336'
API_KEY = 'VwSGcqqwsCl282LGKnFwHDIA'
SECRET_KEY = 'h4oL6Y9yRuvmD0oSdQGQZchNcix4TF5P'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.wma'), 'pcm', 16000, {'dev_pid': 1536,
})print(res.get("result")[0])

3 两者合在一起,用函数封装

from aip import AipSpeech
import time,os""" 你的 APPID AK SK """
APP_ID = '15420336'
API_KEY = 'VwSGcqqwsCl282LGKnFwHDIA'
SECRET_KEY = 'h4oL6Y9yRuvmD0oSdQGQZchNcix4TF5P'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()def audio2text(filepath):# 识别本地文件res = client.asr(get_file_content(filepath), 'pcm', 16000, {'dev_pid': 1536,})print(res.get("result")[0])return res.get("result")[0]def text2audio(text):filename = f"{time.time()}.mp3"result = client.synthesis(text, 'zh', 1, {'vol': 5,"spd": 3,"pit": 7,"per": 4})# 识别正确返回语音二进制 错误则返回dict 参照下面错误码if not isinstance(result, dict):with open(filename, 'wb') as f:f.write(result)return filenametext = audio2text("wyn.wma")
filename = text2audio(text)os.system(filename)

tuling机器人的网址:www.tuling123.com

1 注册图灵机器人2 创建机器人

4 把图灵机器人加入

from aip import AipSpeech,AipNlp
import time,os""" 你的 APPID AK SK """
APP_ID = '15420336'
API_KEY = 'VwSGcqqwsCl282LGKnFwHDIA'
SECRET_KEY = 'h4oL6Y9yRuvmD0oSdQGQZchNcix4TF5P'nlp =  AipNlp(APP_ID, API_KEY, SECRET_KEY)
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()def audio2text(filepath):# 识别本地文件res = client.asr(get_file_content(filepath), 'pcm', 16000, {'dev_pid': 1536,})print(res.get("result")[0])return res.get("result")[0]def text2audio(text):filename = f"{time.time()}.mp3"result = client.synthesis(text, 'zh', 1, {'vol': 5,"spd": 3,"pit": 7,"per": 4})# 识别正确返回语音二进制 错误则返回dict 参照下面错误码if not isinstance(result, dict):with open(filename, 'wb') as f:f.write(result)return filenamedef to_tuling(text):import requestsargs = {"reqType": 0, #0代表文本"perception": {    #输入信息"inputText": {    #文本"text": text}},"userInfo": {"apiKey": "9a9a026e2eb64ed6b006ad99d27f6b9e",  #注意 这里是你创建的图灵机器人的apikey"userId": "1111"   #用户id }}url = "http://openapi.tuling123.com/openapi/api/v2"res = requests.post(url, json=args)text = res.json().get("results")[0].get("values").get("text")return text# res = nlp.simnet("你叫什么名字","你的名字是什么")
# print(res)text = audio2text("bjtq.wma")if nlp.simnet("你叫什么名字",text).get("score") >= 0.68 :   #语义相似度text = "我的名字叫大王8"
else:text = to_tuling(text)filename = text2audio(text)os.system(filename)

5 使用百度自然语音识别与自然语音合成,加上图灵机器人自动回复.做一个应用

# app.py

from flask import Flask,render_template,request,jsonify,send_file
from uuid import uuid4
import baidu_aiapp = Flask(__name__)@app.route("/")
def index():return render_template("index.html")@app.route("/ai",methods=["POST"])
def ai():# 1.保存录音文件audio = request.files.get("record")filename = f"{uuid4()}.wav"audio.save(filename)#2.将录音文件转换为PCM发送给百度进行语音识别q_text = baidu_ai.audio2text(filename)#3.将识别的问题交给图灵或自主处理获取答案a_text = baidu_ai.to_tuling(q_text)#4.将答案发送给百度语音合成,合成音频文件a_file = baidu_ai.text2audio(a_text)#5.将音频文件发送给前端播放return jsonify({"filename":a_file})@app.route("/get_audio/<filename>")
def get_audio(filename):return send_file(filename)if __name__ == '__main__':app.run("0.0.0.0",9527,debug=True)

# baidu_ai.py
from aip import AipSpeech,AipNlp
import time,os""" 你的 APPID AK SK """
APP_ID = '15420336'
API_KEY = 'VwSGcqqwsCl282LGKnFwHDIA'
SECRET_KEY = 'h4oL6Y9yRuvmD0oSdQGQZchNcix4TF5P'nlp =  AipNlp(APP_ID, API_KEY, SECRET_KEY)
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()def audio2text(filepath):# 识别本地文件res = client.asr(get_file_content(filepath), 'pcm', 16000, {'dev_pid': 1536,})print(res.get("result")[0])return res.get("result")[0]def text2audio(text):filename = f"{time.time()}.mp3"result = client.synthesis(text, 'zh', 1, {'vol': 5,"spd": 3,"pit": 7,"per": 4})# 识别正确返回语音二进制 错误则返回dict 参照下面错误码if not isinstance(result, dict):with open(filename, 'wb') as f:f.write(result)return filenamedef to_tuling(text):import requestsargs = {"reqType": 0,"perception": {"inputText": {"text": text}},"userInfo": {"apiKey": "9a9a026e2eb64ed6b006ad99d27f6b9e","userId": "1111"}}url = "http://openapi.tuling123.com/openapi/api/v2"res = requests.post(url, json=args)text = res.json().get("results")[0].get("values").get("text")print("图灵答案",text)return text

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<audio controls autoplay id="player"></audio>
<p><button οnclick="start_reco()" style="background-color: yellow">录制语音指令</button>
</p>
<p><button οnclick="stop_reco_audio()" style="background-color: blue">发送语音指令</button>
</p>
</body>
<!--<script type="application/javascript" src="/static/Recorder.js"></script>-->
<script type="application/javascript" src="https://cdn.bootcss.com/recorderjs/0.1.0/recorder.js"></script>
<script type="text/javascript" src="/static/jQuery3.1.1.js"></script><script type="text/javascript">var reco = null;var audio_context = new AudioContext();navigator.getUserMedia = (navigator.getUserMedia ||navigator.webkitGetUserMedia ||navigator.mozGetUserMedia ||navigator.msGetUserMedia);navigator.getUserMedia({audio: true}, create_stream, function (err) {console.log(err)});function create_stream(user_media) {var stream_input = audio_context.createMediaStreamSource(user_media);reco = new Recorder(stream_input);}function start_reco() {reco.record();}function stop_reco_audio() {reco.stop();send_audio();reco.clear();}function send_audio() {reco.exportWAV(function (wav_file) {var formdata = new FormData();formdata.append("record", wav_file);console.log(formdata);$.ajax({url: "http://192.168.13.42:9527/ai",type: 'post',processData: false,contentType: false,data: formdata,dataType: 'json',success: function (data) {document.getElementById("player").src ="http://192.168.13.42:9527/get_audio/" + data.filename}});})}</script>
</html>

转载于:https://www.cnblogs.com/mlhz/p/10274523.html

flask之人工智能相关推荐

  1. flask5+baidu+tuling + 语音合成识别nlp httpx js处理录音

    flask+day92+人工智能初识 替代 耳朵 = 麦克风 = 语音识别 ASR 嘴巴 = 扬声器 = 语音合成 TTS Text To Speech 眼睛 = 摄像头 = 图像识别 IR 思考 = ...

  2. python魔法方法学不懂_Python进阶:Python魔法方法

    密圈内有好几个同学问我:学习完了Python基础之后,学些什么呢? 看到这个问题之后,我没在考虑学习基础之后学什么,而我在想真的学完了吗?想以前我也是对着w3c对着廖雪峰的网上教程学习了一遍Pytho ...

  3. 【人工智能毕设之基于Python+flask+bilstm的评论情感分析系统-哔哩哔哩】 https://b23.tv/QU56eTl

    [人工智能毕设之基于Python+flask+bilstm的评论情感分析系统-哔哩哔哩] https://b23.tv/QU56eTl https://b23.tv/QU56eTl

  4. 微信小程序的人工智能模型部署(flask)

    目录 写在前面: 具体做法: 后端: 前端: 其他: 写在前面: 我使用的微信小程序开发工具是:"微信开发者工具",当然你用其他的开发工具应该也差别不大: 人工智能模型用的是pyt ...

  5. python+flask实现和人工智能机器人对话(仿微信聊天页面)| 【Python系列】

    情人节已经过了但是情人节和我们程序员有什么关系,没对象自己new一个不就完了. 话不多说直接上成品. 实现机器人的方式很多,可以深度学习训练机器人使其能与我们进行交流,但是请记住,所拥有的数据越多,机 ...

  6. 浅谈Python flask框架浅析

    前言 Python 面向对象的高级编程语言,以其语法简单.免费开源.免编译扩展性高,同时也可以嵌入到C/C++程序和丰富的第三方库,Python运用到大数据分析.人工智能.web后端等应用场景上. P ...

  7. 成为数据科学家、人工智能和机器学习工程师的自学之路

    来源:大数据文摘 本文约2600字,建议阅读6分钟. 自学是一门需要自律和付出才能掌握的艺术. 时间和成本是人们在尝试学习数据科学,人工智能或机器学习时面临的重大阻碍.自学是一门需要自律和付出才能掌握 ...

  8. 自学是一门艺术:踏上数据科学、人工智能和机器学习的自学之路

    全文共3217字,预计学习时长9分钟 图源:unsplash 学习是最好的投资,在B站最大的作用都变成学习之后,人们在互联网上学习什么都不稀奇了.没错,数据科学.人工智能和机器学习也是可以自学的. 时 ...

  9. 如何为 Flask Web 应用配置 Nginx

    原文地址:How to Configure NGINX for a Flask Web Application 原文作者:patricksoftware 译文出自:掘金翻译计划 本文永久链接:gith ...

最新文章

  1. 如何设计一个 iOS 控件?(iOS 控件完全解析)
  2. 深入理解SERDES接口
  3. 把java当爱好_(观点)如果把爱好做成职业 把职业做成事业
  4. 中国电子用LCP树脂市场未来发展展望及十四五规划咨询建议报告2022-2028年版
  5. 计算机视觉与深度学习 | 城市拒止环境下的视觉SLAM
  6. 关闭注册表编辑器,重新启动计算机后生效。这样资源管理器重启后就不会自动重启了。...
  7. Mac免费软件推荐:Wireshark for Mac(网络分析器)
  8. 决PHP的eAccelerator缓存模块出现500错误的故障
  9. 全志A64和瑞芯微RK3288参数对比介绍
  10. token什么意思中文在C语言中,token是什么意思_token中文意思_token英译汉_英汉词典...
  11. 厦门大学LaTeX毕业论文模板:中英文双目录
  12. 《数字图像处理》第三章学习总结感悟2:直方图处理
  13. K8s介绍及离线安装(四)
  14. write as a reader
  15. 简洁好用的jquery 焦点图插件:Basic jQuery Slider
  16. opengl 画椭圆_椭圆围城与圆型观光步道
  17. 网络工程管理 第七章 应用层协议 万维网 DNS 电子邮件 FTP DHCP TELNET
  18. 千万别在老家买房了,因为那儿通高铁
  19. 个人支付宝/微信/云闪付/商户聚合码/银行卡等到账通知常用技术方案总结
  20. matlab沃利斯圆周率计算公式,物理学家在量子力学中发现圆周率π的计算公式

热门文章

  1. 高手入门STM32总结+学习步骤
  2. 赛迪研究报告:《2019Micro LED显示研究报告》(可免费下载)
  3. node.js的下载安装详细步骤(还有安装配套的express、淘宝镜像、webpack、Vue)
  4. 移动硬盘误删分区,数据完美找回
  5. SSD测试专题(三)
  6. 南京建邺、秦淮等7个区公布校外培训机构白名单
  7. inventor如何钣金出弧面_Inventor钣金造型教程
  8. SpringBoot实现邮箱发送验证码
  9. 云服务器的登陆密码忘记了怎么办?
  10. Python爬虫代理IP(代理池)——加载和使用