百度AI接口

AI智能种类方向

耳朵 = 倾听 = 麦克风 = 语音识别 ASR:Automatic Speech Recognition

嘴巴 = 诉说 = 扬声器 = 语音合成 TTS:Text To Speech

眼睛 = 观察 = 摄像头 = 图像识别 IR:Image Recognition

思考 = 理解 = 逻辑处理 = 自然语言处理:NLP Natural Language Processing

更多种类方向详见百度AI开放平台文档https://ai.baidu.com/docs#/

以下均为使用百度AI开放平台:https://ai.baidu.com/ 以及图灵机器人:http://www.turingapi.com/ 且需导入baidu-aip包,用pip3 install baidu-aip

ASR语音识别

文档帮助

https://ai.baidu.com/docs#/ASR-Online-Python-SDK/top

步骤

首先需要将录好的音频文件格式转换为”pcm”格式,用到了ffmpeg工具,解压后直接剪切文件夹到自定义的目录下,然后切换到文件夹中的bin目录下,复制路径添加到path中。

ffmpeg下载地址:链接: https://pan.baidu.com/s/1HQhbcrj806OWCTzJDEL5vw 提取码: 2333

转换语音文件代码:

 import os

 filepath = input('请输入文件路径:')
print(filepath)
filename = filepath[:-4:] # 仅限于m4a格式,可根据文件格式后缀长度更改
print(filename)
cmd_pcm = f"ffmpeg -y -i {filepath} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filename}.pcm"
os.system(cmd_pcm)
print('格式更改完成!')

转换好以后,在ASR语音识别代码中用到:

 from aip import AipSpeech

 """ 你的 APPID AK SK """
APP_ID = '你的ID'
API_KEY = '你的KEY'
SECRET_KEY = '你的KEY' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) # 读取文件
def get_file_content(filepath):
with open(filepath, 'rb') as fp:
return fp.read() # 识别本地文件
filepath=input('请输入语音文件路径:')
res=client.asr(get_file_content(filepath), 'pcm', 16000, {
'dev_pid': 1536,
}) print(res.get('result')[0])

TTS语音合成

文档帮助

https://ai.baidu.com/docs#/TTS-Online-Python-SDK/top

代码

 import os
from aip import AipSpeech """ 你的 APPID AK SK """
APP_ID = '需要更改处'
API_KEY = '需要更改处'
SECRET_KEY = '需要更改处' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) content = input('请输入需要转换成语音的内容:')
result = client.synthesis(content, 'zh', 1, {
'vol': 5,
}) # 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):
with open(os.getcwd() + '\statics\\TTS.mp3', 'wb') as f:
f.write(result) print('转换完成!')

NLP自然语言处理

文档帮助

https://ai.baidu.com/docs#/NLP-Python-SDK/top

代码

 from aip import AipNlp

 """ 你的 APPID AK SK """
APP_ID = '需要更改'
API_KEY = '需要更改'
SECRET_KEY = '需要更改' client = AipNlp(APP_ID, API_KEY, SECRET_KEY)
text1 = input('输入对比的字段1:')
text2 = input('输入对比的字段2:')
res = client.simnet(text1, text2)
print(res)
print(res.get('score'))

图灵接入

文档帮助

https://www.kancloud.cn/turing/www-tuling123-com/718227

代码

import requests

question=input('输入想要提问的问题:')

data = {
"reqType": 0,
"perception": {
"inputText": {
"text": question
},
"inputImage": {
"url": "imageUrl"
},
"selfInfo": {
"location": {
"city": "北京",
"province": "北京",
"street": "信息路"
}
}
},
"userInfo": {
"apiKey": "需要更改",
"userId": "需要更改"
}
}
res = requests.post('http://openapi.tuling123.com/openapi/api/v2', json=data)
res_dict = res.json()
print(res_dict.get("results")[0].get("values").get("text"))

语音加图灵结合

 import requests
from aip import AipSpeech def Asr():
""" 你的 APPID AK SK """
APP_ID = '需要更改'
API_KEY = '需要更改'
SECRET_KEY = '需要更改' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) # 读取文件
def get_file_content(filepath):
with open(filepath, 'rb') as fp:
return fp.read() # 识别本地文件
filepath = input('请输入语音文件路径:')
res = client.asr(get_file_content(filepath), 'pcm', 16000, {
'dev_pid': 1536,
})
return res.get('result')[0] data = {
"reqType": 0,
"perception": {
"inputText": {
"text": Asr()
},
"inputImage": {
"url": "imageUrl"
},
"selfInfo": {
"location": {
"city": "北京",
"province": "北京",
"street": "信息路"
}
}
},
"userInfo": {
"apiKey": "需要更改",
"userId": "需要更改"
}
}
res = requests.post('http://openapi.tuling123.com/openapi/api/v2', json=data)
res_dict = res.json()
print(res_dict.get("results")[0].get("values").get("text"))

语音图灵结合

结果

图灵

百度

AI百度接口以及图灵接口的使用的更多相关文章

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

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

  2. Java6.0中Comparable接口与Comparator接口详解

    Java6.0中Comparable接口与Comparator接口详解 说到现在,读者应该对Comparable接口有了大概的了解,但是为什么又要有一个Comparator接口呢?难道Java的开发者 ...

  3. 【接口】常见接口集合(返回JSON)

    转<JSON校验网站…>http://www.bejson.com/go.html?u=http://www.bejson.com/webInterface.html 这里为大家搜集了一些 ...

  4. 【接口】SpringBoot+接口开发(一)

    一.接口的简单介绍 1.什么是接口:接口及服务: 2.接口的分类:(1)系统的内部接口;(2)第三方的外部接口; 3.简述接口原理图: 4.接口协议:是指客户端跟服务器之间或者接口与接口间进行的通讯时 ...

  5. python+pytest接口自动化(16)-接口自动化项目中日志的使用 (使用loguru模块)

    通过上篇文章日志管理模块loguru简介,我们已经知道了loguru日志记录模块的简单使用.在自动化测试项目中,一般都需要通过记录日志的方式来确定项目运行的状态及结果,以方便定位问题. 这篇文章我们使 ...

  6. 转】C#接口-显式接口和隐式接口的实现

    [转]C#接口-显式接口和隐式接口的实现 C#中对于接口的实现方式有隐式接口和显式接口两种: 类和接口都能调用到,事实上这就是“隐式接口实现”. 那么“显示接口实现”是神马模样呢? interface ...

  7. JDBC的使用(二):PreparedStatement接口;ResultSet接口(获取结果集);例题:SQL注入

    ResultSet接口:类似于一个临时表,用来暂时存放数据库查询操作所获得的结果集. getInt(), getFloat(), getDate(), getBoolean(), getString( ...

  8. 比较器:Compare接口与Comparator接口区别与理解

    一.实现Compare接口与Comparator接口的类,都是为了对象实例数组排序的方便,因为可以直接调用 java.util.Arrays.sort(对象数组名称),可以自定义排序规则. 不同之处: ...

  9. 集合中Set接口与Collection接口,常用子类TreeSet,HashSet.

    Set接口与List接口的不同之处在于: 不允许有重复的数据. 定义如下: public interface Set<E>extends Collection<E> 主要方法与 ...

随机推荐

  1. 【linux】Ubuntu16.04中文输入法安装

    最近刚给笔记本装了Ubuntu+win10双系统,但是ubuntu16.04没有自带中文输入法,所以经过网上的一些经验搜索整合,分享一下安装中文输入法的心得.本文主要介绍了谷歌拼音跟ibus中文输入法 ...

  2. 【转载】【技巧总结】PyCharm怎么克隆github上开源的项目

    PyCharm怎么clone github上开源的项目 一.先要确保PyCharm正确的配置了Git   如果你已经在PyCharm中配置好了Git,可以跳过此步骤,直接看下一步.   那么怎么在Py ...

  3. 将centos 7 自带的 php 5.4升级为 5.6

    1.进入终端后查看php版本 php -v 输出可能如下: PHP 5.4.35 (cli) (built: Nov 14 2014 07:04:10) Copyright (c) 1997-2014 ...

  4. iOS 9适配

    iOS 9系统策略更新,请开发者注意升级 近期苹果公司iOS 9系统策略更新,限制了http协议的访问,此外应用需要在“Info.plist”中将要使用的URL Schemes列为白名单,才可正常检查 ...

  5. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第九章:贴图

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第九章:贴图 代码工程地址: https://github.com/j ...

  6. Effective C++: 02构造、析构、赋值运算

    05:了解C++默默编写并调用哪些函数 1:一个空类,如果你自己没声明,编译器就会为它声明(编译器版本的)一个copy构造函数.一个copy assignment操作符和一个析构函数.此外如果你没有声 ...

  7. vue单页面项目返回上一页无效,链接变化了,但是页面没有变化

    在最近的项目中,返回上一页没有效果,经过好久的排查才发现问题,是路由守卫写法不规范导致. 在项目中用路由守卫做了登录拦截,没登录的跳转到登录页面.页面跳转和拦截都没问题,但是返回上一页就不行了,也没有 ...

  8. RDS MySQL 8.0 语句级并发控制

    RDS MySQL 8.0 语句级并发控制 背景 为了应对突发的数据库请求流量,资源消耗过载的语句访问,SQL 访问模型的变化, 并保持 MySQL 实例持续稳定运行,AliSQL 版本设计了基于语句 ...

  9. Linxu 用户和用户组管理1

    Linux 系统是一个多用户任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后 以这个账号的身份进入系统. 用户的账号一方面可以帮助系统管理员对使用系统的用户进 ...

  10. 请注意更新TensorFlow 2.0的旧代码

    TensorFlow 2.0 将包含许多 API 变更,例如,对参数进行重新排序.重新命名符号和更改参数的默认值.手动执行所有这些变更不仅枯燥乏味,而且容易出错.为简化变更过程并让您尽可能顺畅地过渡到 ...