是不是看到标题感觉很高大上?其实就是人工智障啦hhh~,本篇文档是典型的标题党,虽然是人工智能,但是没有算法,只是站在巨人的肩膀上而已。

  好了,步入正题。此篇是人工智能应用的重点,只用现成的技术不做底层算法,也是让初级程序员快速进入人工智能行业的捷径。目前市面上主流的AI技术提供公司有很多,比如百度,阿里,腾讯,主做语音的科大讯飞,做只能问答的图灵机器人等等。。。这些公司投入了很大一部分财力物力人力将底层封装,提供应用接口给我们,尤其是百度,完全免费的接口。既然百度这么仗义,咱们就不要浪费掉怎么好的资源,从百度AI入手,开启人工智能之旅。

一、开启人工智能大门

传送门

创建一个百度语音的应用

首先需要登录百度云,接着进入我的控制台,打开百度语音,进入语音应用管理界面,创建一个新的应用

接着就能看到自己创建的应用啦

这里面有三个值 AppID , API Key , Secret Key 记住可以从这里面看到 , 在之后的学习中我们会用到

好了 百度语音的应用已经创建完成了 接下来 我会用Python 代码作为实例进行应用及讲解

安装百度的人工智能SDK

  • 首先咱们要 pip install baidu-aip 安装一个百度人工智能开放平台的Python SDK实在是太方便了,这也是为什么我们选择百度人工智能的最大原因

语音合成

  • 安装好后我们先来测试下,语音合成功能。

  • 具体参数,不详尽之处请看官方文档:传送门

  • 这一步会生成一个名字为audio.m4a的文件
from aip import AipSpeech
import os APP_ID = ''
API_KEY = 'iL6rNZgPjplCGYQfw86zO2ro'
SECRET_KEY = '0YNfOLiAPUgqCL4XxYVoO2oLV37pmByY' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) result = client.synthesis('你好啊', 'zh', 1, {
"spd": 4,
'vol': 8,
"pit": 6,
"per": 0,
}) # 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):
with open('audio.m4a', 'wb') as f:
f.write(result)
else:
print(result)

二、语音识别

安装音频转换工具FFmpeg

  • 声音这个东西格式太多样化了,如果要想让百度的SDK识别咱们的音频文件,就要想办法转变成百度SDK可以识别的格式PCM。

  • 这里我们选择的是FFmpeg ,下载好后配置好环境变量。

  • 即可在CMD中使用
ffmpeg -y  -i audio.m4a  -acodec pcm_s16le -f s16le -ac  -ar  audio.pcm

  • 接着在文件夹中就可以看到pcm格式的文件了

百度语音识别SDK应用

  • 好了准备工作都做好了就开始到正式接触人工智障了

  • asr函数需要四个参数,第四个参数可以忽略,自有默认值,参照一下这些参数是做什么的 
    • 第一个参数: speech 音频文件流 建立包含语音内容的Buffer对象, 语音文件的格式,pcm 或者 wav 或者 amr。(虽说支持这么多格式,但是只有pcm的支持是最好的)
      
      第二个参数: format 文件的格式,包括pcm(不压缩)、wav、amr (虽说支持这么多格式,但是只有pcm的支持是最好的)
      
      第三个参数: rate 音频文件采样率 如果使用刚刚的FFmpeg的命令转换的,你的pcm文件就是16000
      
      第四个参数: dev_pid 音频文件语言id 默认1537(普通话 输入法模型)
from aip import AipSpeech
import os APP_ID = ''
API_KEY = 'iL6rNZgPjplCGYQfw86zO2ro'
SECRET_KEY = '0YNfOLiAPUgqCL4XxYVoO2oLV37pmByY' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read() # 识别本地文件
res = client.asr(get_file_content('audio.pcm'), 'pcm', 16000,{
'dev_pid': 1536,
}) print(
res.get("result")[0]
)
  • 接着来看看返回值

成功的dict中 result 就是我们要的识别文本

失败的dict中 err_no 就是我们要的错误编码,错误编码代表什么呢?

如果err_no不是0的话,就参照一下错误码表

到此百度AI语音部分的调用就结束了,是不是感觉很简单。

Python之人工智能(一)的更多相关文章

  1. python实现人工智能Ai抠图功能

    这篇文章主要介绍了python实现人工智能Ai抠图功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 自己是个PS小白,没办法只能通过技术来证明自己. 话不多说, ...

  2. 一个使用 Python 的人工智能聊天机器人框架

    一个Python 的 AI Chatbot框架 建立一个聊天室可以听起来很棒,但它是完全可行的. IKY是一个内置于Python中的AI动力对话对话界面. 使用IKY,很容易创建自然语言会话场景,无需 ...

  3. python学习(一)——python与人工智能

    最近在朋友圈转起了一张图.抱着试一试的心态,我肝了些课程.都是与python相关的.     课程一:你不知道的python         讲师:王玉杰  (混沌巡洋舰联合创始人 & web ...

  4. 易百教程人工智能python修正-人工智能无监督学习(聚类)

    无监督机器学习算法没有任何监督者提供任何指导. 这就是为什么它们与真正的人工智能紧密结合的原因. 在无人监督的学习中,没有正确的答案,也没有监督者指导. 算法需要发现用于学习的有趣数据模式. 什么是聚 ...

  5. 是AI就躲个飞机-纯Python实现人工智能

    你要的答案或许都在这里:小鹏的博客目录 代码下载:Here. 很久以前微信流行过一个小游戏:打飞机,这个游戏简单又无聊.在2017年来临之际,我就实现一个超级弱智的人工智能(AI),这货可以躲避从屏幕 ...

  6. Python之人工智能:PyAudio 实现录音 自动化交互实现问答

    Python 很强大其原因就是因为它庞大的三方库 , 资源是非常的丰富 , 当然也不会缺少关于音频的库 关于音频, PyAudio 这个库, 可以实现开启麦克风录音, 可以播放音频文件等等,此刻我们不 ...

  7. 易百教程人工智能python修正-人工智能NLTK性别发现器

    在这个问题陈述中,将通过提供名字来训练分类器以找到性别(男性或女性). 我们需要使用启发式构造特征向量并训练分类器.这里使用scikit-learn软件包中的标签数据. 以下是构建性别查找器的Pyth ...

  8. 易百教程人工智能python修正-人工智能监督学习(回归)

    回归是最重要的统计和机器学习工具之一. 我们认为机器学习的旅程从回归开始并不是错的. 它可以被定义为使我们能够根据数据做出决定的参数化技术,或者换言之,允许通过学习输入和输出变量之间的关系来基于数据做 ...

  9. 易百教程人工智能python修正-人工智能监督学习(分类)

    分类技术或模型试图从观测值中得出一些结论. 在分类问题中,我们有分类输出,如“黑色”或“白色”或“教学”和“非教学”. 在构建分类模型时,需要有包含数据点和相应标签的训练数据集. 例如,如果想检查图像 ...

随机推荐

  1. java中List的用法和实例详解

    java中List的用法和实例详解 List的用法List包括List接口以及List接口的所有实现类.因为List接口实现了Collection接口,所以List接口拥有Collection接口提供 ...

  2. java Long、Integer 、Double、Boolean类型 不能直接比较

    测试: System.out.println(new Long(1000)==new Long(1000)); System.out.println(new Integer(1000)==new In ...

  3. 网页渗透-wpscan

    wpscan –url www.xxx.com #扫描基本信息 wpscan –url www.xxx.com –enumerate p #扫描插件基本信息 wpscan –url www.xxx.c ...

  4. 设计模式13---桥接模式(Bridge Pattern)

    桥接模式将抽象与具体实现分离,使得抽象与具体实现可以各自改变互不影响.桥接模式属于设计模式中的结构模式. 桥梁模式涉及的角色 抽象(Abstraction)角色:抽象定义,引用对接口对象的引用. 重新 ...

  5. 【小梅哥FPGA进阶教程】第十二章 数字密码锁设计

    十二.数字密码锁设计 本文由山东大学研友袁卓贡献,特此感谢 实验目的 实现数字密码锁设计,要求矩阵按键输出且数码管显示输入密码,密码输入正确与否均会有相应标志信号产生. 实验平台 芯航线FPGA核心板 ...

  6. Python 数据分析—第九章 数据聚合与分组运算

    打算从后往前来做笔记 第九章 数据聚合与分组运算 分组 #生成数据,五行四列 df = pd.DataFrame({'key1':['a','a','b','b','a'], 'key2':['one ...

  7. Java网络编程のOSI

    我们可以把客户机和远程服务器理解为主机A和主机B,用户和主机A可以通过主机A中的应用程序进行交互,主机A与主机B之间交互则是通过计算机网络通信进行的. 网络中每台机器称为节点.大多数节点是计算机,此外 ...

  8. [Mac] 获取cpu信息

    [Mac] 获取cpu信息 命令行获取cpu信息 sysctl machdep.cpu output like machdep.cpu.tsc_ccc.denominator: 0 machdep.c ...

  9. selenium+jenkins+maven+testNG搭建持续集成环境

    为了简明起见,分几大部分,很基础的细节就不详述了 一·安装jenkins 二·创建一个maven项目的job 2.1   填上SVN的Repository URL 2.2  由于是在本地执行maven ...

  10. 利用Senparc.Weixin SDK 实现微信用户的授权,并获取信息

    前一段时间在学校做过一个项目,就是利用的Senparc.Weixin SDK 做的,于是翻看以前代码,虽然有注释,但是还是看的迷迷糊糊的,干脆就单步执行一遍看看是怎么实现的,然后就重新写了个简易的授权 ...