1,语音的合成,识别

后端代码:

  1. from aip import AipSpeech, AipNlp
  2. import os
  3. # 语音合成
  4. """ 你的 APPID AK SK """
  5. # 申请的Ai.baidu.com的ID,接口,密钥
  6. APP_ID = '15217709'
  7. API_KEY = 'eNiP5QUsgBh6QwpbNv8Qmsy3'
  8. SECRET_KEY = 'gwhM3wDo0Kjjd1PDIxqqW4Bfex10Y4f3'
  9.  
  10. # 实例化AipSpeech,AipNlp对象
  11. client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
  12. nlp_client = AipNlp(APP_ID, API_KEY, SECRET_KEY)
  13.  
  14. # 调节发音的会泽的
  15. # 第一个可以放要转化吃那个语音的文字
  16. result = client.synthesis('', 'zh', 1, {
  17. "per": 4, # 表示是男音还是女音
  18. "spd": 8, # 表示说话的速度
  19. "pit": 6,
  20. "vol": 5,
  21. })
  22.  
  23. # 识别正确返回语音二进制 错误则返回dict ,这时返回的是文件文本
  24. if not isinstance(result, dict):
  25. with open('auido.mp3', 'wb') as f:
  26. f.write(result) # 把二进制语音写入到文件中
  27.  
  28. # 定义一个读取文件的函数
  29. def get_file_content(filePath):
  30. # 把wma格式的文件转化为.pcm格式的文件
  31. os.system(f"ffmpeg -y -i {filePath} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filePath}.wma.pcm")
  32. # 把转化了的格式保存到当前目录
  33. with open(f"{filePath}.wma.pcm", 'rb') as fp:
  34. # 返回这个文件读取的内容
  35. return fp.read() # 并把这个文件返回给调用者
  36.  
  37. # get_file_content("cg.m4a")
  38. # 识别本地文件, 把本地的语音文件转成pcm个格式的文件并把语音转化成二进制文件
  39. res = client.asr(get_file_content('xh.m4a'), 'pcm', 16000, {
  40. 'dev_pid': 1536,
  41. })
  42. print(res, type(res))
  43. # {'corpus_no': '6637053740205578210', 'err_msg': 'success.', 'err_no': 0, 'result': ['给我讲个笑话'], 'sn': '757488757051545309494'}, <class 'dict'>
  44.  
  45. Q = res.get("result")[0]
  46. # 取到输入的主要内容
  47. print(1,Q) # 1 给我讲个笑话
  48. # 判断是不是问的是名字,是拿Q和"你叫什么"做相似度匹配如果大于0.7,则表明用户表达的是这个意思
  49. if nlp_client.simnet(Q, "你叫什么?").get("score") >= 0.7:
  50. A = "我的名字叫雪雪"
  51. result = client.synthesis(A, "zh", 1, {
  52. "per": 4,
  53. "pit": 8,
  54. "spd": 4,
  55. "vol": 5,
  56. })
  57. # 如果不存在result,就打开audio.mp3的文件
  58. if not isinstance(result, dict):
  59. with open("audio.mp3", "wb") as f:
  60. f.write(result)
  61. os.system("audio.mp3")
  62.  
  63. else:
  64. # 调用图灵机器人
  65. import go_tuling
  66. # 传2个参数,一个是用户输入的内容,并赋值给A
  67. A = go_tuling.tl(Q, "asd")
  68. # 结果赋值给result,并读取这个文件
  69. result = client.synthesis(A, "zh", 1, {
  70. "per": 4,
  71. "pit": 8,
  72. "spd": 4,
  73. "vol": 5,
  74. })
  75. if not isinstance(result, dict):
  76. with open("audio.mp3", "wb") as f:
  77. f.write(result)
  78.  
  79. os.system("audio.mp3")

调用图灵的代码:

  1. import requests
  2.  
  3. url = "http://openapi.tuling123.com/openapi/api/v2"
  4.  
  5. data_dict = {
  6. "reqType": 0,
  7. "perception": {
  8. "inputText": {
  9. "text": "北京"
  10. },
  11. },
  12. "userInfo": {
  13. "apiKey": "96dfe320eec549519c5168093f93b2dc",
  14. "userId": "asd",
  15. }
  16. }
  17.  
  18. def tl(text, uid):
  19. # 给字典赋值text,这个text是传过来的用户输入的内容
  20. data_dict["perception"]["inputText"]["text"] = text
  21. # 并给字典赋值是哪个用户的要求
  22. data_dict["userInfo"]["userInfo"] = uid
  23. # 把这个消息数据反送给图灵
  24. res = requests.post(url, json=data_dict)
  25. # 会得到一个响应值,去json的方法
  26. res_json = res.json()
  27. print("res:", res, type(res))
  28. # res: <Response [200]> <class 'requests.models.Response'>
  29. print("res_json:", res_json,type(res_json))
  30. # res_json: {'intent': {'actionName': '', 'code': 10006, 'intentName': ''}, 'results': [{'groupType': 1, 'resultType': 'text', 'values': {'text': '猪猪与爸爸 小猪与爸爸在谈话小猪说:爸爸为什么上个月有人来要钱你说没有,这个月那个人来要钱你说又没有?小猪爸爸:哎呀,爸爸要讲信用嘛!'}}]} <class 'dict'>
  31. # 返回图灵相应的数据
  32. return res_json.get("results")[0]["values"]["text"]

百度AI的语音合成,语音识别的更多相关文章

  1. 百度ai 基于node 语音识别 音频文件类型转换

    百度ai 基于node 语音识别 音频文件类型转换 项目简介 源代码移步:https://github.com/xuess/ai-baidu-node 本项目主要功能为,本地音频语音识别和文件类型转换 ...

  2. 百度AI开放平台,语音识别,语音合成以及短文本相似度

    百度AI开放平台:https://ai.baidu.com/ 语音合成 from aip import AipSpeech APP_ID=" #'你的 App ID' API_KEY=&qu ...

  3. 基于Flask和百度AI实现与机器人对话

    实现对话机器人主要有个步骤 : 一.前端收集语音传入后端 二.后端基于百度AI接口进行语音识别,转换成文字 三.对文字进行自定义验证或通过图灵端口进行处理,生成回复内容 四.将文字通过百度AI接口合成 ...

  4. 基于百度AI开放平台的人脸识别及语音合成

    基于百度AI的人脸识别及语音合成课题 课题需求 (1)人脸识别 在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄.性别.颜 ...

  5. ros下基于百度语音的,语音识别和语音合成

    代码地址如下:http://www.demodashi.com/demo/13153.html 概述: 本demo是ros下基于百度语音的,语音识别和语音合成,能够实现文字转语音,语音转文字的功能. ...

  6. 什么?小程序实时语音识别你还在痛苦的对接科大讯飞?百度Ai识别?

    前言 微信小程序,说不上大火,但是需求还是不少的.各大企业都想插一足 于是前端同学就有事情做了. 需求 我需要录音 我边说话边识别,我要同声传译,我要文字转语音,还要萝莉音 我:??? 正文 一开始, ...

  7. 人工智能-调百度AI接口+图灵机器人

    1.登陆百度AI的官网 1.注册:没有账号注册 2.创建应用 3.创建应用 4.查看应用的ID 5.Python代码 from aip import AipSpeech APP_ID = " ...

  8. python 全栈开发,Day122(人工智能初识,百度AI)

    一.人工智能初识 什么是智能? 我们通常把人成为智慧生物,那么”智慧生物的能力”就是所谓的”智能”我们有什么能力?听,说,看,理解,思考,情感等等 什么是人工智能? 顾名思义就是由人创造的”智慧能力” ...

  9. 使用百度ai接口加图灵机器人完成简单web版语音对话

    app文件 from flask import Flask, request, render_template, jsonify, send_file from uuid import uuid4 i ...

随机推荐

  1. JavaScript中函数的调用

    JavaScript中函数的调用 制作人:全心全意 在JavaScript中,函数定义后并不会自动执行,要执行一个函数需要在特定的位置调用该函数,调用函数需要创建调用语句,调用语句包含函数名称和参数. ...

  2. 性能优化 java 24 次阅读 · 读完需要 15 分钟 0

    摘要: 技术传播的价值,不仅仅体现在通过商业化产品和开源项目来缩短我们构建应用的路径,加速业务的上线速率,也会体现在优秀程序员在工作效率提升.产品性能优化和用户体验改善等小技巧方面的分享,以提高我们的 ...

  3. MySQL索引与Index Condition Pushdown(二)

    实验 先从一个简单的实验开始直观认识ICP的作用. 安装数据库 首先需要安装一个支持ICP的MariaDB或MySQL数据库.我使用的是MariaDB 5.5.34,如果是使用MySQL则需要5.6版 ...

  4. HDU 5487 Difference of Languages

    Difference of Languages Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. ...

  5. POJ-2689 Prime Distance,区间素数筛法

                                                    Prime Distance 只会埃氏筛法的弱鸡今天读了读挑战程序设计120页,明白了求小区间内素数的方 ...

  6. docker容器的导入导出

    导出容器docker export 导出容器快照到本地文件$ sudo docker ps -aCONTAINER ID        IMAGE               COMMAND      ...

  7. ISAPI映射路径错误,导致K3Cloud打不开。

    今天一个同事说她的K3Cloud打不开,一看是页面报500错误,具体信息看图片: 问题: ISAPI配置的映射路径错了,多了个反斜线. 解决办法: 在IIS管理器中找到ISAPI筛选器,删除掉就行了.

  8. 命令行模式直接下载jar包到本地库

    命令行下,直接使用  dependency:get -DrepoUrl=仓库地址 -Dartifact=groupId:artifactId:version[:packaging][:classifi ...

  9. [Poj2411]Mondriaan's Dream(状压dp)(插头dp)

    Mondriaan's Dream Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 18096   Accepted: 103 ...

  10. HTML DOM对象的属性和方法介绍(原生JS方法)

    HTML DOM对象的属性和方法介绍 DOM 是 Document Object Model(文档对象模型)的缩写. DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口), ...