开发前准备

  1. 调用百度和图灵机器人相关的
  2.  
  3. 参考链接:www.cnblogs.com/changtao/p/10596385.html
  1. 下载一个网页录音的js插件
  2. 链接:https://pan.baidu.com/s/1-dvlmwLlMzO3crZea35kiQ
  3. 提取码:qth0
  1.  

前端开发:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>我是玩具</title>
  6. </head>
  7. <body>
  8. <P><audio id="player" controls autoplay></audio></P>
  9. <button onclick="start_reco()">录音</button>
  10. <button onclick="stop_reco()">发送语音</button>
  11. <div id="content">
  12.  
  13. </div>
  14.  
  15. </body>
  16. <script type="text/javascript" src="/static/Recorder.js"></script>
  17. <script type="text/javascript" src="/static/jquery-3.3.1.min.js"></script>
  18. <script type="text/javascript">
  19. var serv = "服务器ip";
  20.  
  21. var reco = null;
  22. var audio_context = new AudioContext();//音频内容对象
  23. navigator.getUserMedia = (navigator.getUserMedia ||
  24. navigator.webkitGetUserMedia ||
  25. navigator.mozGetUserMedia ||
  26. navigator.msGetUserMedia); // 做的一个兼容问题
  27.  
  28. navigator.getUserMedia({audio: true}, create_stream, function (err) {
  29. console.log(err)
  30. });
  31.  
  32. function create_stream(user_media) {
  33. var stream_input = audio_context.createMediaStreamSource(user_media);
  34. reco = new Recorder(stream_input);
  35. }
  36.  
  37. function start_reco() {
  38. reco.record();
  39. }
  40.  
  41. function stop_reco() {
  42. reco.stop();
  43. reco.exportWAV(function (wav_file) {
  44. console.log(wav_file);
  45. var formdata = new FormData(); // form 表单 {key:value}
  46. formdata.append("reco",wav_file); // form input type="file"
  47. $.ajax({
  48. url: serv + "/upload",
  49. type: 'post',
  50. processData: false,
  51. contentType: false,
  52. data: formdata,
  53. dataType: 'json',
  54. success: function (data) {
  55. console.log(data);
  56. if(data.code == 0){
  57. document.getElementById("player").src="拼接一个提交的地址"+data.filename;
  58. document.getElementById("content").innerText=data.content
  59. }
  60.  
  61. }
  62. })
  63. });
  64. reco.clear(); // 每次执行完,清空reco容器
  65. }
  66.  
  67. </script>
  68. </html>  

提示:语音处理方法的地址:https://www.cnblogs.com/changtao/p/10596385.html

后端开发:

  1. from flask import Flask,request,redirect,render_template,jsonify,send_file
  2. from uuid import uuid4
  3. import audio2text
  4.  
  5. app = Flask(__name__)
  6.  
  7. @app.route('/')
  8. def index():
  9. return render_template('web_soon.html')
  10.  
  11. @app.route('/upload',methods=['post'])
  12. def upload():
  13. fi = request.files.get('reco')
  14. fi_name = f"{uuid4()}.m4a"
  15. fi.save(fi_name)
  16.  
  17. ret_sb = audio2text.speech_sb(fi_name) //语音识别的函数
  18. ret_npl = audio2text.my_npl(ret_sb.get('result'),'123') // 自然语言处理
  19. ret_hc_filename = audio2text.speech_hc(uuid4(),ret_npl) // 将自然语言处理的结果合成语音
  20.  
  21. ret = {
  22. "filename":ret_hc_filename,
  23. "content":ret_npl,
  24. "code":0
  25. }
  26. return jsonify(ret)
  27. @app.route("/get_file/<filename>")
  28. def get_file(filename):
  29. return send_file(filename)
  30.  
  31. if __name__ == '__main__':
  32. app.run(('0.0.0.0'),8600)

  

基于百度API+Flask实现网页版和图灵机器聊天的更多相关文章

  1. 百度地图热力图--批量地址转换应用(基于百度api)

    需求:把外卖订餐地址做个用户分布热力图 思路分析:第一步去百度地图api开放平台找例子 http://lbsyun.baidu.com/jsdemo.htm#c1_15 首先从百度API的demo例子 ...

  2. WebRTC实现网页版多人视频聊天室

    因为产品中要加入网页中网络会议的功能,这几天都在倒腾 WebRTC,现在分享下工作成果. 话说 WebRTC Real Time Communication 简称 RTC,是谷歌若干年前收购的一项技术 ...

  3. vue仿微信网页版|vue+web端聊天室|仿微信客户端vue版

    一.项目介绍 基于Vue2.5.6+Vuex+vue-cli+vue-router+vue-gemini-scrollbar+swiper+elementUI等技术混合架构开发的仿微信web端聊天室— ...

  4. 基于百度语音识别API的Python语音识别小程序

    一.功能概述 实现语音为文字,可以扩展到多种场景进行工作,这里只实现其基本的语言接收及转换功能. 在语言录入时,根据语言内容的多少与停顿时间,自动截取音频进行转换. 工作示例: 二.软件环境 操作系统 ...

  5. 基于.Net平台C#的微信网页版API

    git上有很多类似的项目,但大多都是python和js的,为了便于.Net windows平台的使用,我重构了一个.Net版本的,已整理开源 https://github.com/leestar54/ ...

  6. 基于百度翻译API开发属于自己的翻译工具

    你是否每天使用着网页翻译工具?你是否遇到过这种情况,上网过程中遇到一个很长的单词但是又不能复制,要开两个浏览器,一个打开百度翻译,照着另一个网页输入单词?你安装了各种翻译软件后,又删除,只因忍受不了那 ...

  7. 基于html5 canvas和js实现的水果忍者网页版

    今天爱编程小编给大家分享一款基于html5 canvas和js实现的水果忍者网页版. <水果忍者>是一款非常受喜欢的手机游戏,刚看到新闻说<水果忍者>四周年新版要上线了.网页版 ...

  8. 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内。以及两点间的测距功能

    权声明:本文为博主原创文章,未经博主允许不得转载. 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内.以及两点间的测距功能. 绘制多边形(蓝色) ...

  9. 微信号网页版api

    Django Wechat Api djangowechatapi是基于wxpy和django制作的web应用 安装 使用pip pip install djangowechatapi 源码安装 gi ...

随机推荐

  1. SP11470 TTM - To the moon

    嘟嘟嘟 主席树+区间修改. 以为是水题,写着写着发现区间修改标记下传会出问题,然后想了想发现以前做的只是单点修改. 那怎么办咧? 然后题解交了我标记永久化这个神奇的东西. 特别好理解,就是修改的时候直 ...

  2. 如何使用 IDEA 创建项目并且上传到 GitHub

    在 GitHub中 注册创建账号 :https://github.com 下载安装 Git : https://git-scm.com 安装成功后打开 Git Bash,输入下列命令,设置 Git 全 ...

  3. P1577 切绳子

    P1577 切绳子 题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位. 输入输出格式 输入格式: 第一行两个整数N ...

  4. 软件工程(FZU2015) 赛季得分榜,第11回合(beta冲刺+SE总结)

    SE_FZU目录:1 2 3 4 5 6 7 8 9 10 11 12 13 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分:beta30分 团队项目分=团队得分+个人贡献分 个人 ...

  5. 动态链接库-Win32 DLL的说明

    在实际编程时,我们可以把完成某种功能的函数放在一个动态链接库中,然后给其他程序调用. WinAPI中所有的函数都包含在3个最重要的DLL中. Kernel32.dll 它包含那些用于管理内存.进程和线 ...

  6. Kickstart 和 Cobbler ks.cfg文件详解

    ks.cfg文件组成大致分为3段 命令段 键盘类型,语言,安装方式等系统的配置,有必选项和可选项,如果缺少某项必选项,安装时会中断并提示用户选择此项的选项 软件包段 %packages @groupn ...

  7. java基础3之IO

    流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接.类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流. 流的种类 字符 ...

  8. python之数据类型补充、集合、深浅copy

    一.内容回顾 代码块: 一个函数,一个模块,一个类,一个文件,交互模式下,每一行就是一个代码块. is == id id()查询对象的内存地址 == 比较的是两边的数值. is 比较的是两边的内存地址 ...

  9. python之常用模块二(hashlib logging configparser)

    摘要:hashlib ***** logging ***** configparser * 一.hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法 ...

  10. AutoMapper入门使用

    AutoMapper入门使用 在应用开发的过程中,首先要了解整个系统中各个系统的组件的作用,然后了解系统的工作流(workflow),最后需要梳理一遍数据流(dataflow),而在整理数据流的过程中 ...