音频基础知识+智能语音控制台介绍 | 学习笔记

简介: 音快速学习频基础知识+智能语音控制台介绍

开发者学堂课程【三节课带你走进智能交互:频基础知识+智能语音控制台介绍】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/296/detail/3457


音频基础知识+智能语音控制台介绍

 

内容介绍

一.智能语音交互-概览

二.智能语音交互-应用场景

三.智能语音交互-产品与服务

四.智能语音交互-音频概念

五.智能语音交互-ASR概念

六.智能语音交互-体验、注册、开通

七.智能语音交互-使用

 

一.智能语音交互-概览

智能语音交互是基于语音识别、语音合成等技术,为企业在多种实际应用场景下提供产品“能听、会说、懂你”式的智能人机交互体验。

 

智能语音交互包括但不限于语音识别、语音合成技术。

 

语音识别是自动语音识别,一般会简称为ASR,目标是将人类语音中的词汇内容转换为可读的文字。

 

语音合成,也叫做智能语音合成,简称为TTS,其目标是将文字转成人的声音。

 

二.智能语音交互-应用场景

1.png

 

智能语音交互有着非常多的应用场景。比如法庭庭审转写,录音质检,实时直播字幕,智能语音问询终端等等。

 

在法庭庭审转写过程中,将庭审过程中的法官、被告等角色所说的话实时转写成文字,替代书记员的角色,从而提高效率。阿里云的智能法庭方案截至目前已经覆盖了数百个法庭,得到了广泛好评。

 

实时直播字幕这个场景,比如在现场演讲或直播场景下,将视频中的音频实时转换成字幕,在直播场景下,甚至进一步对内容进行实时的监控。演讲过程中也可以提供语音翻译。比如在演讲时收到中文,把它实时识别成文本之后来调用的语言翻译的一些功能,实现中英互译。有兴趣的可以在阿里云官网智能云交互产品来进行更多的了解。

 

三.智能语音交互-产品与服务

 

1、一句话识别

对时长较短(一分钟以内)的语音进行识别,适用于较短的语音交互场景,如语音搜索、语音指令、语音短消息等,可集成在各类App 智能家电、智能助手等产品中。

 

2、实时语音识别

对不限时长的音频流做实时识别,达到“边说边出文字”的效果,内置智能断句,可用于视频实时直播字幕、实时会议记录、实时法庭庭审记录、智能语音助手等场景。

 

3、录音文件识别

对用户上传的录音文件进行离线识别,上传完之后6小时内完成识别并返回识别文本。可用于呼叫中心语音质检,庭审数据库录入,会议记录总结,医院病历录入等场景。

 

4、语音合成声音定制

为客户提供深度定制TTS声音的能力。通过先进的深度学习技术,用更少的数据量,更快速高效地为客户定制个性化语音合成声音。

 

5、语言模型自学习工具

用户通过上传数据,对阿里的语音技术进行深度定制,从而提升特定业务领域的识别准确度。目前支持上传文本数据对语言模型进行定制,未来会推出上传音频数据对声学模型进行定制。

 

6、(长文本)语音合成

能将用户提交的文本转换成自然流畅的语音,有多种音色可供选择,并提供调节语速、语调、音量等功能。适用于智能客服、通知、任务播报、文学有声阅读等场景。

 

 

四.智能语音交互-音频概念

 

1、采样率

音频采样率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。目前语音识别服务只支持16000Hz和8000Hz两种采样率,其中8000Hz一般是电话业务使用,其余都使用16000Hz。其他可能还有6k、44k等等。

 

2、采样位数

即采样值或取样值。它是用来衡量声音波动变化的一个参数,也可以说是声卡的分辨率。它的数值越大,分辨率也就越高,所发出声音的能力越强。采样精度取决于采样位数的大小,一般来说是2字节即16bit。常见可能还要8bit位数。

 

3、声道

声道是指声音在录制时在不同空间位置采集的相互独立的音频信号,所以声道数也就是声音录制时的音源数量。常见的音频数据为单声道或双声道(立体声)。除录音文件识别以外的服务只支持单声道(mono)语音数据。

 

4、音频编码

指语音数据存储和传输的方式。请注意,语音编码和语音文件格式不同。例如常见的WAV文件格式,会在其头部定义语音数据的具体编码,其中的音频数据通常是使用PCM编码,但也有可能是 AMR或其他编码。其他可能还有u- law、a-law、mp3、amr、mkv等。

 

五.智能语音交互-ASR概念

 

1、逆文本规整(inversetextnormalization)

语音转换为文本时使用标准化的格式来展示数字、金额、日期和地址等对象,以符合阅读习惯,简称ITN。

 

语音原始文本

开启ITN的识别结果

百分之二十

20%

一千六百八十元

1680元

五月十一号

5月11日

请拨幺幺零

请拨110

 

2、流式中间结果(intermediateresult)

在调用语音识别服务时,服务端流式的返回中间识别结果,而不是等到全部结果识别完成后才返回。

例如一段语音,识别最终结果是“你好阿里巴巴”,在启用中间结果后可能如下图所列在您说话的同时返回5次。

1.你

2.你好

3.你好啊

4.你好阿里

5.你好阿里巴巴

 

3、语音活动检测(Voice ActivityDetectionVAD)

又称语音端点检测,语音边界检测。目的是从声音信号流里识别有效语音的开始和结束时闸段、剧除长时间的静音数据。

 

六.智能语音交互-体验、注册、开通

 

以上是对智能语音交互的简单的介绍,接下来基于阿里云公共人员智能语音交互产品来介绍如何体验、注册、开通使用智能语音交互。

 

智能语音交互入口:https://ai.aliyun.com/nls/

语音合成:https://ai.aliyun.com/nls/tts

实时语音识别:https://ai.aliyun.com/nls/trans

 

下图为智能语音交互在阿里云官网入口,

2.png

 

还有语音合成的在线体验介绍,如下图可以看到,有很多发言人,通用、客服类、文学场景类、童声、英文、方言,

3.png

 

智能语音交互控制台:

https://nls-portal.console.aliyun.com/overview

 

智能语音交互的开通的过程:

1. 注册阿里云账号

2. 实名认证(可进行个人认证和企业认证。如果是个人认证,通过支付宝就可以完成认证。)

3. 开通智能语音交互服务(试用版,可以提供三个月免费使用期,做测试、开发、联调)

 

下面是智能语言交互控制台再阿里云上界面的展示:这是一个已经注册开通的账号,前面的流程将不再演示。

4.png 

 

从这里可以看到,创建了15个项目,使用了一个语言模型。再下面是用量统计,比如说它可以区分一句话识别、实时识别、语音合成等等。

做完测试、开发之后最好开通商用版本。

 

下面是项目的创建:

5.png

 

平台这里就是语音识别过程中的一些识别率的优化,提供了热词和语言模型定制的两个方式:

6.png

 

自动化测试是比较客观的手段来进行识别率的自动化测试。比如做完这些平台的优化之后,想观察优化之后的效果,就可以通过自动化测试来进行验证。这就是智能语音交互在阿里云的的使用介绍。

 

七.智能语音交互-使用

 

一般来说,当接触一个新的产品的时候,往往要了解这个产品的功能,使用的时候需要去看它的开发文档,学习它的示例代码,然后学习一些API。

下面将从以下的几个过程进行介绍

 

1.下载sdk及示例代码

2.学习开发文档

3.测试通过示例代码流程

 

首先,智能语言交互在阿里云上的一个开发文档的入口,下载SDK以及设计代码,了解开发文档,比如开发的一些限制或者注意事项等。

 

第二,通过一个代码来跑通流程,完成对公共语言智能语言交互产品的一个调用。

 

智能语音交互开发文档:

https://help.aliyun.com/product/30413.html

7.png

 

这就是智能语音交互开发文档,这里有一些控制台使用指南的介绍,比如怎样管理项目;作为模型的使用,怎样开通服务?

 

点开看一下:

识别开通服务、升级。升级之后,可以购买预付费资源包等等。这是控制台的使用。

 

还有一些开发指南,是一些开发的时候的注意事项,比如API的细节的介绍,下面还有一些一句话识别等等来进行产品分类的开发的介绍。

 

一句话识别点开看一下,它提供了Java sdk,移动的SDK,还有HTTP形式的Restful的API的形式。还是提供了比较多的一个接入方式和这个开发语言的开发包。

 

下面以实时语音识别为例,下载一个它的安装包。

 

String appKey="填写你的appkey”;

String token ="填写你的token";

 

直接把它导入到IDE里面。从这里可以看到,需要填入两个信息,一个填写appkey,第二个填写token,填完这两个参数之后就可以进行设置。但是这两个参数从哪来?下面登录到管控台来看一下。在这里可以看到总览页面里面有一个提示:

8.png 

 

意思是token在做测试的时候是可以使用的,但是它有有效期限制,不能长久的使用。当过期之后再去调用就会失效,因此开发完成后产品要上线的时候,还需参考开发文档,在代码里通过API的形式去集成toke来动态的更新token。点开看一下:

访问令牌是调用智能语音服务的凭证,这里介绍了访问令牌的几种方式。

9.png

剩下的就先不看了,下面可以简单的动态的获取一个token,把它给记下来:

10.png

appkey从哪里来?需要创建一个实际的项目来获取。点这里可以看到:

11.jpeg

 

电话是指电话去接入一些应用,比如应用要识别电话端语言的时候就需要选择电话。选择电话的时候,所有的采用率都是8K。电话场景下,一般来说,产品都是搭配从这里面选择的语言。

12.png

比如中国移动电话是10086,有的省份提供了智能语音导航,电话打进之后,可以和机器人进行交互。这种情况下,用手机或固话等去打时,电话场景的语音一般都是8K的。如果使用支付宝打支付宝热线电话95188的时候,也会引导用户接入叫做人机对话的场景,也是8K的采样率。

 

除了电话场景之外,剩下的就是非电话场景,非电话场景包括哪些?比如在支付宝或者淘宝APP上,按着按钮说“我想买ipad、电脑“等这些费用,它就会通过一个非电话的形式,一般是16K的场景。通过这种在直播产品或演讲场景下拿话筒来采集语音,它也会使用16K的场景。有中文普通话、英语、四川方言、湖北方言,粤语,还有日语和西班牙语等等。

 

这里选一个简单的中文普通话的一个模型,因为待会要测试的是中文普通话的录音,点击发布。

13.png 

 

已经发布成功后,可以看到在项目名称上有个APP开发,把它复制一下,点击运行:

144.png

 

运行结果可以看出,语音的内容就是北京的天气。因此就通过这样一个方式去实现实时语音识别。

 

此示例演示了:

1.实时语音识别API的使用

2.通过本地模拟实施流的方式进行演示

3.识别耗时的计算

 

提示:

通过一个本地文件来模拟发送实时流,在实际使用的过程中,用户可以从某处实施采集,或接收语音流并发送到服务端。实时采集的意思是通过话筒实时采集音频。

 

通过读取本地文件的形式去模拟实时获取语音流并发送,read很快,所以这里加上一个sleep来这个模拟实时采集实时识别的过程。

15.png

 

接下来调用tts。它也需要输入appkey 和 token等信息。下面来测试一下:

16.png

 

合成的语音是欢迎使用阿里巴巴智能语音服务。这里面有几个关键的信息,比如tts start latency、tts first latency、tts stop latency,这是什么概念?

Start latency指的就是:

17.png

 

指的就是从测试代码连上公共语音识别智能语音服务,然后发送,完成请求并且返回,花了79毫秒,这个时间比较符合一些。但是往上传还是有一些耗时的,服务在上海,操作在北京,所以延时相对来说还会加大一些。

18.png

 

时间差还是比较大的,一个是218毫秒,一个是1.241秒

//语音合成的语音二进制数抠

@Override

public void onMessage(ByteBuffer message) {

try {

if(firstRecvBinary){

// T000 此处是计算首包语音流的延迟,收到第一包语音流时,即可以进行语音播放,以提升响应速度(特别是实时交互场景下) 

意思是发起一个TTS的语音合成的调用,无需等到所有的语音流全部合成完成。假设要合成一句话叫做“你好阿里巴巴”,不需要等待“你好阿里巴巴”这六个字全部合成完成才会给用户播放,或者把声音播放出来等等,完全可以当收到第一个预留,比如它的包可能只返回一个声音,此时其实就可以进行播放。通过这种方式它就可以提升响应速度,降低了用户的延迟体验。这是关于语音合成代码的介绍。

firstRecvBinary  false;

long now = Systen.currentTimeMillis();

logger.info("its first latenc :"+(now-SpeechSynthesizerDemo.startTime)+“ns*);

}

byte[] bytesArray = new byte[nessage.renaining()]; message.get(bytesArray, offset: 0,bytesArray.length);

//Systen.out.println(“write array:"+bytesArray.length); fout.write(bytesArray);

} catch (I0Exception e) {

e.printstackTrace();

} 

public void process(){

SpeechSynthesizer synthesizer= null;

try {

//创建实例,建立连接

synthesizerm new SpeechSynthesizer(client, getSynthesizerListener()); synthesizer.setAppKey(appKey);

//设置返回音频的编码格式

synthesizer.setFornat(OutputFormatEnum.WAV);

//设置返回音频的采样率

synthesizer.setSampleRate(SampleRateEnum.SAMPLE_RATE_16K);

//发音人

synthesizer.setVoice("xyuuon");

//语调,范围是-588~508,可选,默认是8 synthesizer.setpitchRate(180);

//语速,范围是-508~500,默认是8

synthesizer.setSpeechRate(188);

//设置用于语音合成的文本

synthesizer.setText("欢迎使用阿里巴巴智能语音合成服务,您可以说北京明天天气怎么样啊");

黄色部分随便填一个值,运行:

19.png

 

可以看到和刚才的显示的信息不一样,首先这报了一个错误信息,错误代码是4102001,这个代码可以待会通过阿里云去查。但是除了号码之外,还提供了一个错误信息,TTS client error。Invalid voice name意思是设置了一个无效的voice name,也就是声音是不存在的。

2开头表示成功,404开头表示客户端错误,5开头表示服务端错误.通过这种形式可以比较快速地分析是哪一侧出现了错误,缩小排查范围。

在控制台上关于获取token:

Systen.err.println("CreateTokenDemo need parans: <accessKeyId> <accessKeySecret >”)

Systen.exit( status: -1);

访问令牌(Access Token)是调用智能语音交互服务的凭证。本文介绍获取访问令牌的方法。

您可以使用阿里云公共SDK调用云端服务获取Access Token,调用时需提供阿里云账号的AccessKeyID和AccessKey Secret.除此之外,您可根据需求,自行完成获取Token的客户端请求,详情请参见获取Token协议说明。

说明:

访问令牌使用前需要通过ExpireTime参数获取有效期时间数,过期需要重新获取。

运行:

20.png 

 

在Java的设计代码里面,有关于token的设计说明,可以看到它的输入参数需要AccessKeyID和AccessKey Secret。没有输入这两个信息,所以会报错。


这两个信息从哪里来?之前如果使用过阿里云的其他产品,都会知道这是一个相对的。点开一下。这个已经实名认证通过了:

因为没有输入这两个信息,所以会报错。21.png 

 

从这里可以看到,通过它来获取token,通过token调用里面服务,可以看到还会隐藏起来。这是关于怎么样去获取token。

 

可以在代码里面集成API来动态的获取token动态的更新,在这个时候动态更新token以避免token的失效。从这里可以看到有个提示,Get tospare time,每请求一次Token会返回一个token的有效期,根据这个有效期可以提前十分钟,甚至提前一个小时来获取新的有效token来更新服务。

相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
域名解析 网络协议 对象存储
阿里云 CDN 控制台演示:源站加速|学习笔记
快速学习阿里云 CDN 控制台演示:源站加速
阿里云 CDN 控制台演示:源站加速|学习笔记
|
消息中间件 存储 运维
RocketMQ 控制台安装|学习笔记
快速学习 RocketMQ 控制台安装
1819 0
RocketMQ 控制台安装|学习笔记
|
自然语言处理 监控 BI
智能语音交互控制台项目服务用量查看Quick Start
智能语音交互(Intelligent Speech Interaction)是基于语音识别、语音合成、自然语言理解等技术,为企业在多种实际应用场景下,赋予产品“能听、会说、懂你”式的智能人机交互功能。适用于智能问答、智能质检、法庭庭审实时记录、实时演讲字幕、访谈录音转写等场景,在金融、司法、电商等多个领域均有应用。目前云上的许多企业客户在使用该服务后,往往有想查看具体某个项目的消费账单等需求。这一需求,目前是无法直接查看到的。但是在控制台监控统计功能页可以分项目查看调用量。再结合费用中的账单明细能计算下具体的消费。本文以12月的项目调用为例,为您介绍如何查看监控报表页面项目用量详情。
205 0
智能语音交互控制台项目服务用量查看Quick Start
|
监控 关系型数据库 MySQL
02.熟悉云数据库 MySQL 版控制台|学习笔记
快速学习02.熟悉云数据库 MySQL 版控制台
156 0
02.熟悉云数据库 MySQL 版控制台|学习笔记
|
人工智能 监控 安全
RPA 流程梳理和适用场景以及控制台功能展示(二)| 学习笔记
快速学习 RPA 流程梳理和适用场景以及控制台功能展示。
415 0
RPA 流程梳理和适用场景以及控制台功能展示(二)| 学习笔记
|
Web App开发 存储 负载均衡
RPA 流程梳理和适用场景以及控制台功能展示(一)| 学习笔记
快速学习 RPA 流程梳理和适用场景以及控制台功能展示。
408 0
RPA 流程梳理和适用场景以及控制台功能展示(一)| 学习笔记
|
人工智能 监控 安全
RPA 流程梳理和适用场景以及控制台功能展示(二)|学习笔记
快速学习 RPA 流程梳理和适用场景以及控制台功能展示(二)
168 0
RPA 流程梳理和适用场景以及控制台功能展示(二)|学习笔记
|
Web App开发 文字识别 负载均衡
RPA 流程梳理和适用场景以及控制台功能展示(一)|学习笔记
快速学习 RPA 流程梳理和适用场景以及控制台功能展示(一)
790 0
RPA 流程梳理和适用场景以及控制台功能展示(一)|学习笔记
|
5月前
|
Java
java实战项目超市管理系统控制台版
java实战项目超市管理系统控制台版
|
5月前
|
Java
【Java开发指南 | 第二十篇】Java流之控制台
【Java开发指南 | 第二十篇】Java流之控制台
37 2
下一篇
无影云桌面