开源试用已结束,购买商业版本8.8W/套起,商务合作请联系wx/xxxxxxxx。
本文档描述了即迅语音识别服务产品的产品定义、产品背景、产品目标、产品优势、产品功能等。读者可通过该文章对本产品的功能、涉及领域、特点有一定了解。
即迅语音识别服务(insmess-speech)是由北京视迅科技有限公司的智能语音产品,采用开放式架构设计,构建一体化的人工智能语音平台。
即迅语音识别服务(insmess-speech)支持私有化部署,通过组件式的部署方式可为客户提供单个或多个人工智能语音能力。适配国产化服务器,能够在多种国产化服务器上流畅运行。通过标准的HTTP、websocket服务接口为客户提供便捷的平台对接方式,让客户打造属于自己的人工智能语音平台。
随着深度神经网络、GPU、大数据、云计算等技术的快速发展,人工智能所依赖的算法、算力、数据三个重要因素都获得了突破,人工智能也克服了一直以来的的瓶颈,进入了快速发展时期,在很多领域都进入了实用阶段。北京视迅科技有限公司也抓住这一发展机遇,致力于为客户提供一个多种 AI 技术全方位融合的人工智能平台,实现 “赋能百业” 的目标。即迅语音识别服务(insmess-speech)采用开放性架构设计,客户可根据自己的需求,对功能模块进行自由组合,可以为客户节省大量的平台对接开发工作。即迅语音识别服务自推出以来,并已成功应用于金融、电信、能源、交通、政府、教育等多个重点领域,满足了各行业日益增长的应用多种人工智能技术的需求,并取得了非常好的效果,得到了合作伙伴的肯定。
即迅语音识别服务(insmess-speech)目前主要集中于以下目标
- 提供国产化服务器的推理速度,让AI算法能够更加快速丝滑的在国产化服务器上运行。
- 提高CPU环境的推理速度,为用户解决服务器无GPU设施问题。
- 支持容器化部署,可以部署在云环境中。
- 提供简洁的SDK,用户可基于SDK实现快速的二次开发。
即迅语音识别服务(insmess-speech)能够与业界主流的软硬件产品实现互连互通,将人工智能技术服务有机整合,适用于多业务承载、业务类型快速增长等场景,一站式解决了用户系统需要到不同人工智能技术提供商获取服务的繁琐过程,让人工智能技术应用简单实用化,产品具有如下优势:
高适配性:
- 适配Centos、Ubuntu、以及国产化麒麟等多种操作系统。
- 适配无GPU服务器,可利用CPU服务器进行高效推理。
- 适配X86与ARM架构CPU。
自主可控:
- 支持源码交付,实现完全自主可控。
- 支持定制化开发,满足用户需求。
- 为用户提供定制化接口,支持用户进行二次开发。
高可用性:
- 核心服务支持多点热备,无单点故障
- 统一的负载均衡设计,合理调度服务资源,资源利用率最大化
ASR(Automatic Speech Recognition,自动语音识别)能力服务,主要提供了将语音转换为文本的能力。
语音识别是机器通过分析和理解,将人类语音中的词汇内容转换为计算机可读的输入的过程,例如按键、二进制编码或者字符序列。典型的语音识别的框架,有三个重要的组成部分:模型训练、前端语音处理、后端识别处理。语音识别系统原理框图如下:
语音识别系统的模型通常由声学模型和语言模型两部分组成,分别对应于从语音信号中抽取的特征到音节概率的计算和音节到字概率的计算。
为了适应不同年龄、不同地域、不同人群、不同信道、不同终端和不同噪声环境的应用环境,需要大量语音语料和文本语料来进行训练,才能有效提高识别率。随着互联网的快速发展,以及手机等移动终端的普及应用,目前可以从多个渠道获取大量文本或语音方面的语料,这为语音识别中的语言模型和声学模型的训练提供了丰富的资源,使得构建通用大规模语言模型和声学模型成为可能。
前端语音处理指利用信号处理的方法对说话人语音进行检测、降噪等预处理,以便得到最适合识别引擎处理的语音,并从中抽取特征向量的过程。
后端识别处理就是指利用训练好的“声学模型”和“语言模型”对提取到的特征向量进行识别(也称为“解码”),得到文字信息的过程。
声学模型的主要目的是对应于语音特征到音节(或者音素)概率的计算,语言模型的主要目的是对应于音节到文字的概率的计算。而其中最主要的解码器部分就是指对原始的语音特征进行声学模型打分和语言模型打分,并在此基础上得到最优的词模式序列的路径,此路径上对应的文本就是最终识别结果。
ASR的识别结果是根据声音来进行解码的,但这为了得到更好的体验,需要进行诸如打标点、文本顺滑、数字归一化、自动文本分段等文本后处理,并将最终处理结果输出。
目前声学模型的建模方法普遍采用深度神经网络的方法。根据神经网络结构的不同还分为:DNN(深度神经网络)、TDNN(时间延迟神经网络), CNN(卷积神经网络)、RNN(循环神经网络),LSTM(长短时记忆模型),BLSTM(双向LSTM)等。CTC 等训练方法也被应用在语音识别方面来实现端到端的识别,进一步提升了识别率和降低了实时率。
即迅语音识别服务在发展过程中,可以支持多种网络结构的模型。目前的主力模型是 CTF 模型,CTF 是在 CTC 算法的基础上,对建模单元粗粒度、模型训练方法、解码帧率进行的优化创新,有效提升了语音识别引擎的执行效率、鲁棒性,增强了对不同口音、语速的适配能力,大幅提升了多人对讲、远场讲话等识别率。CTF 模型具有识别率高、速度快、响应延迟小的特点,可以广泛适用于所有的应用场景。
在语言模型方面,目前通常采用统计语言模型的建模方法,其中N-Gram简单有效,被广泛使用。在实际解码过程中,可以仅使用单趟解码,也即利用一个小 N-Gram 语言模型进行预测,或者使用二趟解码,也即先用一个小 N-Gram 语言模型进行预测,然后再在生成的候选词网上使用一个更大的N-Gram 语言模型(通常在几十G大小)重打分的方式,来调整候选的次序,以得到更为准确的识别结果。二趟解码识别率更高,但速度略慢。
近年来也有使用基于神经网络的语言模型,例如RNN语言模型进行进一步的重打分,对比仅使用N-Gram模型能够得到进一步的识别率提升,但由于使用了神经网络的计算,在速度上较慢。
即迅语音识别服务支持使用小语言模型打分、大语言模型重打分,以及神经网络语言模型重打分。
语音识别的识别率通常会受到信道、使用场景、口音、背景噪声、混响、是否远场识别等的影响。信道常见的是网络信道(16K)和电话信道(8K),使用场景通常分为人机场景和人人场景两类:
- 人机场景:用户发出短语音请求并期望应用程序做出响应,每句话比较独立,用户通常会计划自己想说的话并使用更为正式的语言。
- 人人场景:用户知道自己是和另外的人说话,并非总是计划好他们想说的话,因此常常会使用一些非正式语言,口语化现象严重。
即迅语音识别服务可以为不同的应用场景提供最合适的模型,因而在各种场景下都有着很高的识别准确率。
针对16K、8K 不同场景的测试集进行测试,识别率大致如下:
识别场景 | 识别率 | 实际应用 |
---|---|---|
16K 人机 | 95-97% | 手机输入法,实体机器人交互,APP导航 |
16K 人人 | 90% | 会议实时转写,录音笔离线音频转写 |
8K 人机 | 88-92% | 电话导航,电话外呼 |
8K 人人 | 85% | 电话语音质检分析 |
即迅语音识别目前支持如下语种:
- 中文:包括中英文混杂情况
- 方言,支持粤语、四川话、闽南话、上海话
- 少数民族语言:维、蒙、藏(安多、康巴、卫藏)、彝、朝、哈萨克
- 英语、西班牙语、法语、德语、意大利语、日语、韩语、波斯语
由于在中文声学模型训练过程中,训练语料已经包含全国各地区的音频,包括一些重口音音频,因此中文的声学模型已经具有一定的口音适应性。但对于方言和少数民族语言,还是需要专门的模型。
即迅语音识别服务所支持的语种还在不断扩展中,如果有实际的需求和语料来源,也可以进行专门定制。
即迅语音识别服务还为不同的领域制作了专门的领域语言模型,针对特定领域的专业词汇、说法等进行了相应的优化,因而对于领域内的音频具有更好的识别效果。目前支持的领域包括:
- 通用聊天
- 大金融
- 特种领域
- 电力
- IT 科技
- 健康、养生、医疗
- 政府、时政
- 教育培训
- 电视盒子、视频点播
语音识别支持多种音频格式的识别,包括并不限于pcm、wav、mp3、v3、vox、speex、opus、G.711(alaw-A率, ulaw-μ率)语音编码等格式。无论何种编码格式,在平台中都会解码为 pcm 16bit数据送入核心算法进行识别。
语音识别具备降噪功能,能够识别一定程度的噪音或背景音下的语音。即迅语音识别服务通过对实际业务系统收集到的不同类型背景噪声的语音数据、以及通过仿真获得的模拟噪音数据进行海量的音频数据训练,具有很高的噪声适应能力和识别鲁棒性。
VAD (Voice Activity Detection, 语音激活检测,也称端点检测),是对输入的音频进行分析,确定用户说话的起始位置和终止位置。一旦检测到用户开始说话,语音才开始送入识别引擎,这样节省了引擎的资源。但VAD算法效果也直接影响到识别结果,如果判断不准确,有可能会造成丢字或分句不正确的现象。
即迅语音识别服务中所使用的VAD算法综合了能量阈值,信噪比,音调,基音等多种时域频域特征的方法,能够更准确的检测语音的起始和结束位置。同时,利用GMM对语音和噪声进行建模,在低信噪比的噪声环境中,能更加准确地检测出音。
即迅语音识别服务具有统一的文本后处理模块,此后处理模块对于ASR的识别结果将进行一系列的后处理,以便得到用户体验更好的结果文本。
打标点功能对于IVR等没有可视化界面的场景并不重要,但对于输入法或者会议转写等场景则是必须的功能。
即迅语音识别服务中的打标点功能,可根据语义及语音停顿等条件进行判断,自动对识别结果加上标点符号。在中文识别中可以增加 “,”
、“。”
、“?”
三种标点。
ASR 的输出结果都是和声音一一对应的,但对于数字或者一些符号来说并不是书面语的常用表达方法。例如,识别结果是“百分之十八点六”,可能更希望输出的是“18.6%”。这功能并不局限于数字串的处理,也包括其他口语到书面语的转换,例如“毫米汞柱”,转为"mm/Hg"等,因此,在一些文档资料中,这个功能也叫 ITN(Inverse Text Normalization,逆文本规整)功能。但由于还是以数字为主,我们还是称为“数字归一化”。
即迅语音识别服务中实现了一个使用 ngram 统计模型和自定义规则结合判断的数字归一化方法,对ASR识别出来的文本中包含的数字字符串或其他匹配字符串进行必要的转换。使用统计模型通常能够得到更为鲁棒的结果,但由于训练数据的覆盖性问题,也会有可能有一些处理错误的地方。而对于某些规则性很强的,则可以使用自定义规则来直接处理,以避免这些问题。这些自定义规则也是开放的,可以根据现场情况和识别的领域进行针对性的调整。
语音识别会识别音频中的所有文字,包括一些“敏感词”。文本后处理模块可以将这些敏感词变成 “*”
的形式再输出。敏感词列表是开放的,可以根据情况进行增减。
识别率是语音识别应用的一个重要因素。在实际应用中,可以利用动态资源优化的方式来进一步提高识别率。
动态优化资源是指可以动态设置一些内容来对识别过程和结果进行优化。即迅语音识别服务中实现了动态加载及指定资源、以及在识别时不同会话可以使用不同资源的功能。在使用动态优化的情况下,原始的声学模型和语言模型都不会被修改,因此在动态资源发生变化时,服务也不需要重启。
即迅语音识别服务支持如下动态优化资源:
- 小语料语言模型
- 用户自定义词
- 敏感词
可以使用小规模语料(比如庭审系统的起诉书)来训练一个定制的语言模型,在识别时动态和原始的大语言模型进行合并处理(合并时可以通过配置指定权重),达到对小语料中的语言特征进行适应的目的。使用动态小语料语言模型优化,就可以实现为每个审判庭使用不同的起诉书进行优化,彼此独立,同时无需重启服务器。
用户自定义词表,也称 “热词”,是指用户可以自定义一些特定的词表,例如用户的通讯录或者领域内的专业术语词表,动态加入到系统中,识别时候就能够提升这些词汇的识别准确率。
即迅语音识别服务支持对这些词汇的自动标音,在自动标音有可能不准确的情况下,也支持手动标音。
敏感词的功能,是指用户可以通过接口上传敏感词词表,在识别时如果结果中出现敏感词,则会输出 "*" 屏蔽此敏感词。
以上动态优化资源都可以通过 “统一资源管理” 接口进行上传并获得资源 ID,在识别时带上此资源ID即可。另外,也支持通过管理后台直接管理这些资源,并作为 ASR 能力的缺省优化资源。
使用动态优化的方式来提高识别率比较简单,适合于对少量词汇或者数据进行语言模型相关优化的情况。但在领域差异较大的情况下,就需要重新训练语言模型,以得到更好的识别结果。另外,如果有音频和标注的情况下,也可以进行声学模型的定制训练,来进一步提升识别率。
北京视迅科技有限公司提供模型定制训练服务,针对特定的项目,客户可以提供相应的文本语料和/或声音语料给到北京视迅科技有限公司,北京视迅科技有限公司会进行做专门的文本语料的清洗和语言模型优化,声音语料的标注和声学模型的优化。在优化后,更新线上的声学模型或语言模型。在模型更新后,ASR 服务需要重启。
单次的语言模型优化时间通常不超过0.5个月,声学模型优化视提供的语料数量以及所使用的算法决定,通常100小时语料也在0.5个月左右。
由于涉及敏感信息或者隐私信息,有可能客户不希望提供文本语料或者声音语料给北京视迅科技有限公司。此时也可以根据客户的需求,提供本地化的训练平台,在用户本地进行部署并进行训练以提高识别的准确率。
本地化训练平台包括语言模型训练和声学模型训练。语言模型训练工具通常需要更大的内存,声学模型训练工具通常需要 GPU 服务器。
通过使用本地化训练平台,用户可以通过可操作的界面上传或指定训练的文本语料或语音语料,查询模型训练进度,并可指定测试集,在训练迭代过程中检查识别率优化情况。
在实际解码过程中,声学模型的计算部分往往占了一半以上甚至更多的CPU时间,而声学模型的计算严重依赖于大量密集型的数学运算,这部分是可以通过并行运算来得到加快的的。即迅语音识别服务支持使用 GPU 卡来进行解码,可以大大的提高解码速度。
TTS(Text To Speech,语音合成)能力服务,主要提供了将文本转换为语音的功能,简单都说就是 “让机器开口说话”。
语音合成技术在2000年左右便已经进入实用化落地的阶段,被广泛应用在客服中心、叫号、终端APP等场景,但核心技术仍在不断发展。
长期以来,选音拼接和参数合成两条路线长期并存,各有优劣:前者音质、语速真实,但合成不同内容流畅度不够稳定,容易跳变,导致生硬甚至听不懂;后者合成不同内容流畅度基本稳定,但音质机器感浓、音色特性损失较大、语速顿挫不流畅。
2013 年以来,深度学习浪潮席卷了涉及人工智能技术的所有应用领域,语音合成领域也随之更新换代。
2017 年 google 在参数合成的基础上创立了全新的波形生成和序列到序列路线。 Wavenet 波形生成架构,取代传统的从参数到音频的声码器和各类信号级音质增强算法,直接以因果预测的思路直接逐个生成音频样点,追求完全还原,产生的音质非常逼真丰富,原录音中的临场感、环境底噪都能一并还原出来,填补了参数合成与波形拼接在音质方面的鸿沟。这种方法逐渐成为研究的主流,但由于深度学习方法的计算量很大,在应用落地上还在逐步探索过程中。
即迅语音合成服务,采用最新的端到端技术深度神经网络算法,合成效果得到了很大提升,具有合成音色优美、音质清晰、自然度高、韵律感强的特点。同时,也在工程化方面做了大量工作,使得能满足实际落地的性能需求。
同时,为了高性能的场景需求,也支持传统的参数合成的算法。两种算法分别由两个服务提供, aicp_tts
服务提供端到端算法引擎,aicp_tts_h9
服务提供参数合成算法引擎。
目前平台挂接的最新的端到端神经网络算法引擎只支持中文、英文两个语种,但中文支持了多个女声、男声、童声等不同风格的语音合成音库。所有中文都支持中英文混读。
将来也会使用最新的端到端算法来制作其它语种的音库。
句子可懂度达 100%,自然度 4.4 (MOS值,5 分制)。
支持音量调节、语速调节、基频调节,支持强制设置数字读法、英文读法、标点读法。
支持多种音频格式输出,包括pcm, alaw, ulaw, wav, mp3, opus, speex 等,也支持指定输出的音频采样率。
在语音合成过程中,有可能出现读音错误、停顿或韵律错误、或者需要控制某些局部文本读法的情况, AICP 的语音合成能力服务提供了一些优化方式可以解决这些问题。
说话人识别(Speaker Recognition,SR),又称声纹识别(Voiceprint Recognition,VPR),顾名思义,即通过声音来识别出来“谁在说话”,是根据语音信号中的说话人个性信息来识别说话人身份的一项生物特征识别技术。便于比较,语音识别(Automatic Speech Recognition,ASR)是通过声音识别出来“在说什么”。为了简便,后文统一称为VPR。
典型的声纹识别模型可以分为两种:template model和 stochastic model,即模板模型和随机模型。也称作非参数模型和参数模型。
模板模型(非参数模型)将训练特征参数和测试的特征参数进行比较,两者之间的失真(distortion)作为相似度。例如VQ(Vector quantization矢量量化)模型和动态时间规整法DTW(dynamic time warping)模型。
DTW 通过将输入待识别的特征矢量序列与训练时提取的特征矢量进行比较,通过最优路径匹配的方法来进行识别。而 VQ 方法则是通过聚类、量化的方法生成码本,识别时对测试数据进行量化编码,以失真度的大小作为判决的标准。
随机模型(参数模型)用一个概率密度函数来模拟说话人,训练过程用于预测概率密度函数的参数,匹配过程通过计算相应模型的测试语句的相似度来完成。(参数模型采用某种概率密度函数来描述说话人的语音特征空间的分布情况,并以该概率密度函数的一组参数作为说话人的模型。)例如(GMM和HMM)高斯混合模型和隐马尔科夫模型。
支持声纹提取,可将音频文件中发言者的特征进行提取。
支持声纹对比,对比音频中发言者的声纹特征相似度。