Python人工智能第一篇:语音合成和语音识别

2023-05-16

Python人工智能第一篇:语音合成和语音识别

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

开启人工智能技术的大门 : http://ai.baidu.com/

首先进入控制台,注册一个百度的账号(百度账号通用);打开百度语音,进入语音应用管理界面

1680442-20190928174105223-81687150.jpg

创建一个新的应用;

1680442-20190928174143391-1693703728.jpg

创建语音应用App

1680442-20190928174235261-1251880282.jpg

就可以创建应用了,回到应用列表我们可以看到已创建的应用了

1680442-20190928174312563-1964905071.jpg

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

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

一.安装百度的人工智能SDK:

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

安装完成之后就来测试一下:

baidu-aip Python SDK 语音合成技术文档 : https://ai.baidu.com/docs#/TTS-Online-Python-SDK/top;我们可以选择Python SDK

语音合成

# -*- coding: utf-8 -*-
# @Time    : 2019/9/28 11:01
# @Author  : AnWen
from aip import AipSpeech

""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

# 详细参数可看python sdk 文档
result = client.synthesis('你好百度', 'zh', 1, {
    'vol': 5,   #音量,取值0-15,默认为5中音量
    'per': 3,   #发音人选择, 0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女  
    'spd': 7,   #语速,取值0-15,默认为5中语速
})

# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):
    with open('audio.mp3', 'wb') as f:
        f.write(result)
# 在工程目录下,就可以看到 audio.mp3 这个文件了,来听一听

语音识别

百度的SDK识别咱们的音频文件,就要想办法转变成百度SDK可以识别的格式PCM,

可以实现自动化转换格式并且屡试不爽的工具 : FFmpeg 这个工具的下载地址是 : 链接:https://pan.baidu.com/s/1jonSAa_TG2XuaJEy3iTmHg 密码:w6hk

FFmpeg 环境变量配置:

首先你要解压缩,然后找到bin目录,我的目录是 C:\ffmpeg\bin

尝试一下,是否配置成功:cmd 执行:ffmpeg

看到这个界面就算配置成功了,配置成功有什么用呢, 这个工具可以将wav wma mp3 等音频文件转换为 pcm 无压缩音频文件

然后我们用命令行对这个 audio.wav 进行pcm格式的转换然后得到 audio.pcm

命令是 : ffmpeg -y -i audio.wav -acodec pcm_s16le -f s16le -ac 1 -ar 16000 audio.pcm

百度语音识别SDK的应用:
import os

from aip import AipSpeech

""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_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()

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

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

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

转载于:https://www.cnblogs.com/an-wen/p/11604093.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python人工智能第一篇:语音合成和语音识别 的相关文章

  • httplib.BadStatusLine: '' 在 Linux 上,但在 Mac 上则不然

    这个错误已经困扰我几个小时了 我决定编写一个单独的项目 只是为了看看我是否可以复制它 而且我可以 但只能在我的服务器上复制 这适用于我的 Mac Mac OSX El Capitan 10 11 6 服务器 CentOS 7 2 1511
  • 使用notebook时将jar添加到pyspark

    我正在尝试将 mongodb hadoop 与 Spark 集成 但不知道如何使 IPython 笔记本可以访问这些 jar 这是我想做的 set up parameters for reading from MongoDB via Had
  • goJS 下拉菜单删除项目

    我有简单的 python Flask goJS 图形应用程序 如下所示 节点和链接文本的源是从应用程序的后端加载的 我将它们设置为model modelData像这样的部分 var graphDataString JSON parse di
  • python类型中的__flags__有什么用

    我最近阅读了pickle源代码 以下代码在copy reg让我很困惑 HEAPTYPE 1 lt lt 9 def reduce ex self proto assert proto lt 2 for base in self class
  • 如何从数据库模式自动生成示例 Django 应用程序?

    我正在评估概念验证应用程序的框架 该应用程序的生命周期约为 30 天 之后它将被遗忘或完全重写 我已确定要从现有数据库模式自动生成示例应用程序 然后调整视觉设计的某些方面 我看过一个演示红宝石 on Rails 它会为数据库中的每个表自动生
  • 如何在模型 Django 中创建必需:布尔字段

    我有一个模型 其中有一个名为的字段is student and is teacher Student and Teacher forms is teacher models BooleanField teacher status defau
  • Django 和 AWS 简单电子邮件服务 [重复]

    这个问题在这里已经有答案了 我正在尝试启动并运行 django 站点 并且正在尝试启用 django 的标准密码重置服务 我的网站由 AWS EC2 托管 因此我想将 AWS SES 用于我的电子邮件服务 但是 我无法使 smtp 连接正常
  • Python绕相机轴旋转图像

    假设我有一个图像 是在对某些原始图像应用单应性变换 H 后获得的 未显示原始图像 将单应性 H 应用于原始图像的结果是该图像 我想围绕合适的轴 可能是相机所在的位置 如果有的话 将此图像旋转 30 度以获得此图像 如果我不知道相机参数 如何
  • 确保特定列位于数据框中最后(或第一个)的最快方法是什么

    given df df pd DataFrame np arange 8 reshape 2 4 columns list abcd 假设我需要专栏 b 到最后 我可以做 df a c d b 但是确保给定列位于末尾的最有效方法是什么 这就
  • 使用 mechanize 和 beautiful soup 在 python 中进行原始 HTML 与 DOM 抓取

    我正在尝试编写一个程序 作为示例 该程序将从该网页上刮掉最高价格 http www kayak com flights JFK PAR 2012 06 01 2012 07 01 1adults http www kayak com fli
  • 如何在Python中比较列表列表中的元素以及比较列表列表中的键?

    我有以下顺序 seq ATG ATG ATG ATG GAC GAT GAA CCT GCC GCG GCA GCT 这是一个字典键 用于存储每个密码子的氨基酸值 三联碱基 例如ATG GCT etc aminoacid TTT F TTC
  • 在Python中从整个图像中检测表格部分

    我有一张尺寸为 3500x5000 的图像 现在我只想检测整个图像中的表格部分 如果不能直接进行 OCR 处理 则对其进行裁剪和旋转 经过所有搜索后 我想到了使用裁剪图像中的每个单元格的想法https medium com coinmonk
  • Kivy错误(python 2.7):sdl2导入错误

    我尝试在我的 Python 2 7 项目 在 PyCharm Windows 10 环境中 上使用 kivy 但出现以下错误 如果有人可以帮助我吗 谢谢 PS 我多次尝试卸载 重新安装库等 并按照像这样的帖子上的建议进行操作 但它不起作用
  • Python 宏:用例?

    如果 Python 有一个类似于 Lisp Scheme 的宏工具 比如元Python https code google com p metapython 你会如何使用它 如果您是一名 Lisp Scheme 程序员 您会使用宏来做什么
  • Django - 从时间戳获取不同的日期

    我正在尝试按日期过滤用户 但直到我可以找到数据库中用户的第一个和最后一个日期为止 虽然我可以让我的脚本稍后过滤掉重复项 但我想从一开始就使用 Django 来完成此操作distinct因为它显着减少 我试过 User objects val
  • 使用 django-profiles 以配置文件形式编辑相关模型

    我在用着Django 配置文件 http bitbucket org ubernostrum django profiles wiki Home在我的应用程序中 因为它为我提供了一些简单的视图 可以帮助我更快地到达我想去的地方 但是 我有一
  • 在 CSV 文件的最上面一行写入

    我有这个sample csv 文件 a 1 apple b 2 banana c 3 cranberry d 4 durian e 5 eggplant 并有以下代码 samplefile open sample csv rb rows s
  • 类型错误:不可散列的类型:pandas 的“切片”

    我有一个 pandas 数据结构 我这样创建 test inputs pd read csv input test csv delimiter 它的形状 print test inputs shape is this 28000 784 我
  • 打包布尔数组需要通过 int (numpy 1.8.2)

    我正在寻找更紧凑的方式来存储布尔值 numpy 内部需要 8 位来存储一个布尔值 但是np packbits允许打包 他们 这真是太酷了 问题是要打包在4e6字节数组a32e6字节我们需要首先使用的布尔值数组256e6字节将布尔数组转换为
  • 如何找到 JAR:/home/hadoop/contrib/streaming/hadoop-streaming.jar

    我正在练习有关 Amazon EMR 的复数视角视频教程 我被困住了 因为我收到此错误而无法继续 Not a valid JAR home hadoop contrib streaming hadoop streaming jar 请注意

随机推荐

  • vscode修改主题颜色(背景颜色)的快捷方式

    当周围强光比较耀眼时 xff0c 如何快速切换vscode的 主题颜色 xff0c 第一步 xff1a 同时按下Ctrl 43 K xff1b 第二步 xff1a 同时按下Ctrl 43 T xff1b 然后弹出多个系统自带的主题 xff0
  • 【C/C++】实型变量

    实型变量的分类 单精度 float 双精度 double 长双精度 long double 实型数据的舍入误差 由于实型变量是由有限的存储单元 组成的 xff0c 因此能提供的有效数字总是有限的 1 include lt stdio h g
  • 使用linux4.15内核lts,Ubuntu 18.04 LTS发布: 采用Linux 4.15内核

    原标题 xff1a Ubuntu 18 04 LTS发布 xff1a 采用Linux 4 15内核 导读4月27日消息 Canonical于伦敦时间26日正式发布了Ubuntu 18 04 LTS版 xff0c Canonical的CEO称
  • c语言malloc struct,使用malloc()函数创建结构体

    malloc 可用来为结构体分配存储空间 结构体的大小通过使用sizeof运算符来确定 示例代码 include include include int main struct Product char symbol 5 int quant
  • VirtualBox的快照功能

    VirtualBox是非常好用的一个虚拟机软件 xff0c 无论是性能还是易用性不比商用的Vmware差 VirtualBox最初是Sun公司的产品 xff0c 由于Sun被Oracle收购 xff0c 现在也归Oracle了 除了虚拟机的
  • 算法:关于生成抽样随机数的这些算法

    概述 xff1a 这里你是不是会说 xff0c 生成随机数有什么难的 xff1f 不就是直接使用Java封装好了的random就行了么 xff1f 当然对于一般情况下是OK的 xff0c 而且本文要说明的这些算法也是基于这个random库函
  • 如何在Ubuntu上搭建WordPress网站,并公网可访问 12-17

    系列文章 如何在Ubuntu上搭建WordPress网站 xff0c 并公网可访问 1 17如何在Ubuntu上搭建WordPress网站 xff0c 并公网可访问 2 17如何在Ubuntu上搭建WordPress网站 xff0c 并公网
  • 琼瑶评价

    作者 xff1a 李小喵 链接 xff1a https www zhihu com question 327292932 answer 712018512 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c 非
  • 【】论晚睡晚起的危害

    早睡早起 xff0c 按时睡觉按时起床 xff0c 在生活安排 xff0c 计划执行中扮演着至关重要的角色 晚睡晚起有五大害处 xff1a 1 xff09 晚睡晚起往往睡眠质量不佳 xff0c 睡眠时间比计划延长 由此导致白天时间不够 xf
  • C++学习——数组的替代品vector

    模板类vector 模板类vector类似于string类 xff0c 也是一种动态数组 您可以在运行阶段设置vector对象的长度 xff0c 可在末尾附加新数据 xff0c 还可在中间插入新数据 基本上 xff0c 它是使用new创建动
  • 磁盘结构损坏且无法读取

    以下纯数个人见解 如有疑问请留言 xff0c 共同讨论 造成这个问题的原因完全是由于BT造成的 或者是这一类BTB类的软件 大家有兴趣的朋友 可以仔细注意一下 xff0c 凡是自己常用BT的 xff0c 我估计大多都会发生这个问题 现在我要
  • matlab中设置colorbar为几种规定颜色

    我们可以通过修改colormap的值来达到这种目的 一般来说colormap的值是64 3的矩阵 xff0c 64代表64种颜色 xff0c 3列是这种颜色的RGB值 xff0c 不过归一化了 如果你想将colorbar颜色设成6种 xff
  • docker pull报错failed to register layer: Error processing tar file(exit status 1): open permission de...

    近来在一个云主机上操作docker pull xff0c 报错如下 xff1a failed to register layer Error processing tar file exit status 1 open etc init d
  • echarts 图例显示到右边

    原 xff1a legend data 39 同龄普通孩子 39 39 已具备技能 39 39 已泛化技能 39 39 已掌握技能 39 39 学习中 39 改 xff1a legend data 39 同龄普通孩子 39 39 已具备技能
  • PX4的启动脚本

    以前STM32的PX4的时候 xff0c 启动脚本是工程的ROMFS px4fmu commom init d里面的rcs里面 在高通平台里面 xff0c 启动脚本是在工程的posix configs eagle flight 里面的px4
  • 如何在Ubuntu上搭建WordPress网站,并公网可访问 17-17

    系列文章 如何在Ubuntu上搭建WordPress网站 xff0c 并公网可访问 1 17如何在Ubuntu上搭建WordPress网站 xff0c 并公网可访问 2 17如何在Ubuntu上搭建WordPress网站 xff0c 并公网
  • 《深入理解Linux内核3rd》学习笔记——进程切换(上):相关知识

    进程切换 xff08 process switch xff09 xff0c 作为抢占式多任务OS中重要的一个功能 xff0c 其实质就是OS内核挂起正在运行的进程A xff0c 然后将先前被挂起的另一个进程B恢复运行 硬件上下文 每个进程都
  • Windows命令查看文件MD5

    certutil hashfile filename MD5 certutil hashfile filename SHA1 certutil hashfile filename SHA256 转载于 https www cnblogs c
  • 百度2013校园招聘移动软件研发工程师笔试题(二)

    百度2013校园招聘移动软件研发工程师笔试题 二 第一题 1 xff1a 用C 43 43 JAVA Objective c C 解释 xff0c 怎么实现面向对象特征 2 xff1a 第二小题 xff1a 用Java或C 43 43 编写
  • Python人工智能第一篇:语音合成和语音识别

    Python人工智能第一篇 xff1a 语音合成和语音识别 此篇是人工智能应用的重点 只用现成的技术不做底层算法 也是让初级程序员快速进入人工智能行业的捷径 目前市面上主流的AI技术提供公司有很多 比如百度 阿里 腾讯 主做语音的科大讯飞