语音信号处理技术包括对语音信号的前期处理、语音识别、语音编码与合成技术等。在医学领域对收集的医学语音数据进行信息提取,主要用到语音识别技术。如图4-7语音识别系统构架图所示,要将收集的语音信号从最原始的声音输入到进行语音识别、完成信息提取,需要先进行预处理和数字化得到符合质量要求的语音数据,以便用于计算机处理。
图4-7 语音识别系统构架图
依靠现在市面上流通的采集设备和简易的计算机条件就可以方便地完成语音识别系统前端设备所要完成的任务,实现语音信号的采集和语音数据的储存。以下简单介绍语音识别后端部分的原理和实现。
语音识别技术是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的技术,也就是让机器听懂人类的语音,也被称为自动语音识别(automatic speech recognition,ASR)。语音识别系统的基本结构如图4-8所示。
图4-8 语音识别系统的构架
声学模型将声学和发音学的知识进行整合,以特征提取得到的特征作为输入,以此生成声学模型分数。语言模型通过训练语料学习词之间的相互关系,估计假设词序列的可能性。解码搜索对给定的特征向量序列和若干假设词序列计算声学模型分数和语言模型分数,将总体输出分数最高的词序列作为识别结果。
将原始语音不定长的时序信号转换成特定的特征向量的过程称为语音特征提取。目前在语音识别中使用最广泛的两种特征是MFCC特征和FBank特征,其提取过程见图4-9,以下将只对各流程的基本概念和作用进行简单介绍,其详细工作原理和代码实现可参考其他相关书籍。
图4-9 语音特征提取的简单流程
(1)预加重:
语音经过口唇发出后受到唇端辐射抑制,高频能量明显降低。这时可以使用预加重的方法补偿语音高频部分的振幅。
(2)分帧:
虽然语音信号整体上并非平稳,但考虑到发浊音时声带振动有规律,因此可以认为语音信号具有短时平稳性,一般取10~30ms。进行语音信号处理时,为减少语音信号整体的非稳态、时变的影响,对语音信号进行分段处理,其中每一段称为一帧,帧长一般取20ms或25ms。同时,为了保证声学特征参数的平滑性,一般采用重叠取帧的方式,即相邻帧之间存在重叠部分,帧移一般取10ms。
(3)加窗:
分帧后的信号是非周期的,但进行后续步骤的快速傅里叶变换(fast Fourier transform,FFT)操作要求信号为无穷信号或周期信号。现实世界中不可能采集到无穷信号,只能是有限时间长度的周期信号。如果信号是非周期的,进行FFT操作之后会有频率泄露的问题,为了减少误差,需要使用加权函数,也叫窗函数。简单来说,加窗的目的是使时域信号更好地满足FFT的周期性要求,减少泄露。
声音从频率上可分为纯音和复合音。纯音只包含一种频率,而大部分声音(包括语音)都是复合音,即涉及多个频率段的声音。每个频率的信号都可以用正弦函数建模,而基于正弦函数具有的正交性(即任意两个不同频率正弦波的乘积在两者公共周期内的积分为零),通过相关处理可以从语音信号中分离出对应不同频率的正弦信号。
离散采样的语音信号可以采用离散傅里叶变换(discrete Fourier transform,DFT),将每个窗口内的数据从时域信号转为频域信号。在实际使用中采用快速傅里叶变换可简化计算复杂度,加快计算速度。
人类对不同频率语音有不同的感知能力。频率低的声音听起来音调低,反之则听起来音调高。然而频率和音调不呈正比关系,音调的单位是梅尔频率,用来模拟人耳对不同频率语音的感知。在梅尔频域内,人的感知能力为线性关系,如果两段语音梅尔频率差两倍,则人在感知上也差两倍。研究者根据一系列心理声学试验得到了类似于耳蜗作用的一个滤波器组,用来模拟人耳对不同频带声音的感知能力。
FBank(filter-bank)是一种常见的声学特征,在经过模拟人耳听觉机制的梅尔滤波器组之后,将属于每个滤波器的功率谱的幅度平方求和后再取对数即可得到。
MFCC是另一种语音识别领域常见的声学特征。MFCC特征可以在FBank的基础上进行离散余弦变换得到。
人在说话时,同一句话语速不同则时间长短不同,说话的内容也不尽相同,说话时声响、环境、周围人声和麦克风等条件也不相同。这些随机过程引出了声学模型需要解决的两个问题:特征向量序列的可变长和音频信号的丰富变化性。
针对以上问题,学术上通常用动态时间规划(dynamic time warping,DTW)和隐马尔可夫模型(HMM)方法来解决。在过去,主流的语音识别系统通常使用混合高斯模型-隐马尔可夫模型作为声学模型。近些年,深度神经网络(deep neural network,DNN)对声学特征建模表现出更好的效果。
隐马尔可夫模型起源于马尔可夫链,马尔可夫链最早由一名俄罗斯数学家提出,用于描述随机过程。在一个随机过程中,如果每个事件的发生概率仅依赖上一个事件,则称之为马尔可夫过程。马尔可夫模型每个状态(state)只有唯一的观察事件,即状态与事件之间不存在随机性。然而HMM描述的问题比马尔可夫模型更复杂,它包含隐藏状态且隐藏状态与观察事件并不是一一对应的关系。为了描述语音数据,在马尔可夫链的基础上进行扩展,用一个观测的概率分布与马尔可夫链上的每个状态进行对应,这样引入双重随机性,使得马尔可夫链不能被直接观察,故称为隐马尔可夫模型。本质上,HMM描述了双重随机过程:①马尔可夫链:状态转移的随机性;②依存于状态的观察事件的随机性。
人说话时发音是连续的,很难区分单个发音单位,因此可将发音单位分为 n 个阶段。用HMM描述发音过程,即用 n 个有效状态来表示 n 个阶段。图4-10展示了一个简单的HMM例子,其中包含4个状态,分别代表单词“six”发音的四个阶段,每个阶段只能向右或自身转换。每个状态可以产生观察值,且每个状态可对应多帧观察值,这些观察值即特征序列,目的是通过可见的观察值推测出对应的隐藏状态。
图4-10 HMM举例
图4-10的举例是一个英文单词,在汉语的语音识别中建立合适的声学模型,首先要选择适合汉语的建模单元。建模单元可以是音素、音节、整词、词组等。
音素(phone)是描述一种语言的最小发音单位,可分为元音和辅音。音节是完整的发音单位,由音素组成,汉语中每个字都有对应的音节。汉语共有32个音素,包括10个元音和22个辅音。同时,由音素组成的汉语音节有409个。英语有48个音素,包括20个元音和28个辅音。
英语语音识别建模工作中,建模单元的选择比较简单。英语没有声调之分,可以直接选择音素来建模。和英语不同,汉语普通话中拼音还分为声母和韵母,声母有24个,韵母有37个,声韵母共61个。声母除了辅音,还有个别半元音例如“w”;韵母除了元音,还有复韵母,即元音和辅音的组合,如“an”。由于汉语的词组多、四种声调等特点,在选择建模单元时,比较合适的是包含声调的声韵母建模,这种情况下模型数目适中,可训练性和稳定性比选择其他建模单元(如音节、音素和词组)优秀。在声韵母建模的实际应用中,往往将61个声韵母归为音素的同一级别,因此根据语音识别实际的技术原理,也存在汉语有61个音素的说法,这61个音素指声韵母。
自然界中很多信号都符合高斯分布,复杂的数据难以用一个高斯函数表示时,可用多个高斯函数组合表示,从而形成高斯混合模型(Gaussian mixture model,GMM)。在语音识别中,HMM每个状态都可对应多帧观察值,这些观察值是特征序列,多样化而且不限制取值范围,因此观察值概率分布是连续的,所以也适合用GMM来建模。
混合高斯模型-隐马尔可夫模型(GMM-HMM)中,HMM模块负责建立状态之间的转移概率分布,GMM模块负责生成HMM的观察值概率。一个GMM负责表征一个状态,每个GMM生成的概率就是HMM中所需要的观察值概率。
依然以单词“six”的HMM为例,如图4-11所示,由于不同人发音存在差异,每个状态可能对应多个高斯函数,这些高斯函数组成GMM与HMM的每个状态对应,相应的观察值也可用对应的高斯分布来表示。这种用GMM作为HMM状态产生观察值的概率密度函数模型就是GMM-HMM。
虽然GMM-HMM以往有很多成功案例,但其无法准确描述语音内部复杂的结构。随着深度学习的发展,深度神经网络模型表现出明显超越GMM模型的性能。因为引入了上下文信息,采用DNN模型的HMM状态建模被称为基于上下文的深度神经网络隐马尔可夫模型(context-dependent DNN-HMM,CD-DNN-HMM)。与GMM相比,其在大量词汇的连续语音识别任务上取得了显著进步,相比传统的GMM-HMM模型性能有明显提升。
图4-11 GMM-HMM
DNN应用到语音识别领域后取得了非常明显的效果,其应用范围广、速度快,已经历了多次换代升级和衍生。从卷积神经网络到循环神经网络(recurrent neural network,RNN)再到RNN与连续时间序列分类的结合等,伴随着这个过程,语音识别的性能也在持续提升,未来甚至可以期望与AI进行无障碍交流。
如果仅依靠前文简单介绍的声学模型,只能完成音素的识别,而无法连词成句,更无法在复杂的医学语音中提取完整可靠的信息。声学模型用来判断给定文字后语音信号有多大的可能发音,语言模型(language model,LM)用来描述不同字词之间的搭配关系,使得这一串词或字变得更“像话”。可以说,声学模型和语言模型在语音识别中就像大脑的左脑和右脑,缺一不可。
语言模型,顾名思义,对语言进行建模的模型。语言表达可以看作一串字符序列,不同的字符序列组合代表不同的含义,字符的单位可以是字或词。语言模型的任务,可以看作给定字符序列,估计该序列的概率,或者说,估计该序列的合理性。例如,“糖尿病导致体重减轻”和“糖尿病倒置体重减轻”哪一个更合理呢?很明显,前一句合理的概率更大,研究者希望语言模型能够作出同样的判断,给出符合人类预期的概率分配,使得“导致体重减轻”的概率大于“倒置体重减轻”的概率。对于给定词序“ w 1 , w 2 ,…, w t ”,利用条件概率公式可以计算这个句子的组合概率(式4-11)。
(式4-11)
基于上述统计方法的语言模型被称为统计语言模型,其比基于语法规则的模型更适合广泛真实的大规模文本。下面介绍两种常见的统计语言模型。
第一节已介绍,此处再联系语言模型有所补充。对汉语而言,N-gram模型也可称为汉语语言模型(Chinese language model,CLM)。汉语语言模型利用上下文相邻词间的搭配信息,在需要把连续无空格的拼音、笔画,或代表字母或笔画的数字,转换成汉字串(即句子)时,计算出具有最大概率的句子,从而实现到汉字的自动转换,无需用户手动选择,避开许多汉字对应相同拼音(或笔画串,或数字串)的重码问题。
N-gram基于这样一种假设:第 n 个词的出现只与前面 n -1个词相关,而与其他任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计 n 个词同时出现的次数得到。考虑到计算代价, n 通常取5以内,根据 n 的取值不同,相应的模型可称为一元模型(unigram)、二元模型(bigram)等。相比一元模型,多元模型解码效果更好,同时模型也越大,解码也越慢。综合来看, n 取3的三元模型(trigram)在计算代价和解码效果等方面更适中,因此使用也最广泛。
N-gram模型存在局限性,只能针对3~5个字词进行建模。针对长度不一的句子时,对上下文依赖关系进行建模的循环神经网络语言模型(RNN-LM)是更好的选择。
RNN由输入层、隐藏层和输出层组成,依然以给定词序“ w 1 , w 2 ,…, w t ”为例,RNN语言模型的简化结构如图4-12所示。
图4-12 RNN-LM
由于建模时囊括了更前面的词序,考虑了上下文的联系,RNN语言模型比N-gram模型有更好的预测能力。但同时,其优秀性能带来的是庞大的计算量和缓慢的训练速度。针对此问题,可以采取分类的方法解决,例如将词语分为名词、动词、量词等。分类之后,可以按类别训练语言模型,这样可以大大加快计算速度。
声学模型、语言模型和解码器是现代语音识别系统最核心的三个组成部分。声学模型主要用来构建输入语音和输出声学单元之间的概率映射关系;语言模型用来描述不同字词之间的概率搭配关系;解码器负责结合声学单元概率数值和语言模型在不同搭配上的打分进行筛选,最终得到最可能的识别结果。
在语音识别系统中,有限加权状态转换机(weighted finite-state transducers,WFST)扮演着重要的角色。如前文介绍,一个语言识别系统由多个部分组成,声学模型、语音模型,甚至更详细的还有发音词典,这些模块分别来自不同的知识源,WFST能提供一个统一的形式来表示这些不同知识源,即将这些模块按照WFST或其兼容的形式编译在一起。表示不同知识源的多个WFST可以通过复合运算整合成一个WFST表示的搜索网络。
在实际医疗工作中实现医学语音数据的识别和文本信息提取,可以选择的产品和工具有很多。例如基于HMM和N-gram模型的开源语音识别工具包,如HTK(hidden Markov toolkit)、Kaldi、CMU Sphinx等,但这些工具多面向专业的研究者,其使用需要一定的编程基础。与此同时,在各种不同数字设备和平台、操作系统中还有很多非开源的语音识别工具和软件可供选择。以下简单介绍几种不同类型语音识别工具的优劣特点和使用场合。
HTK最早由剑桥大学开发,用于建立基于HMM的语音识别系统。语音识别过程的算法繁琐复杂,HTK是一款集成语音信号处理、特征提取、模型训练和识别解码等功能的工具,能使开发者迅速建立自己的语音识别工具。HTK提供一系列各种功能的命令函数用于语音识别,可根据需要自行选择,HTK在UNIX/Linux和Windows操作系统上都可使用。
HTK以源代码的方式发布,在HTK官方网站(http://htk.eng.cam.ac.uk)即可获得最新版本的代码。同时,HTK还附有使用手册HTKBOOK,内容详细说明了各种模块的功能和如何配置各项命令参数。这也是HTK相比其他开源工具的一个明显优势,如果使用者不熟悉语音识别,也可以通过对HTK官方手册的学习对该领域有一个概括的认识。
使用HTK工具搭建语音识别系统,首先要进行工具安装和编译。以下简单介绍Windows操作系统下HTK工具的安装和配置过程。
进入官网注册下载。解压后的readme文件详细描述了HTK在Windows下安装的前提要求。
(1)安装目录:打开cmd,进入HTK所在目录(如e:\htk),创建文件夹bin.win32。
(2)运行VCVARS32。
(3)编译HTK Library:输入代码
cd HTKLib
nmake /f htk_htklib_nt.mkf all
cd ..
(4)编译HTK Tools:输入代码
cd HTKTools
nmake /f htk_htktools_nt.mkf all
cd ..
(5)编译HLM Library:输入代码
cd HLMLibrary
nmake /f htk_hlmlib_nt.mkf all
cd ..
(6)编译HLM Tools:输入代码
cd HLMTools
nmake /f htk_hlmtools_nt.mkf all
cd ..
编译完成后可在bin.win32文件夹内找到对应的.exe文件,说明编译成功。编译完成后将bin.win32文件夹路径加入系统环境变量中。
HTK安装完成后语音识别系统的构建步骤如下:①建立语音数据库,确定并标记声学模型的建模单位,如声母、韵母等;②对语音数据库内的语音文件进行MFCC特征的提取;③为每一个建模单位建立HMM;④利用MFCC特征对每一个HMM进行训练;⑤定义输入语音的语法规则等;⑥识别。
搭建能够识别完整录音病历的语音识别系统过程十分复杂,需要多种学科知识和技能。但可以通过HTK工具搭建一个孤立词语音识别系统,简单了解上文所说各个步骤的详细过程。
例4-3 自杀是精神障碍患者死亡的主要原因之一,自杀行为经常出现在以显著而持久的心境低落为主要临床特征的抑郁症患者中。请使用HTK工具,搭建一个孤立词语音识别系统,能够识别“抑郁”和“自杀”两个词语。
(1)工具准备和环境搭建:
安装见前述过程。在工作目录中新建八个文件夹:def,hmms,models,lab,sig,mfcc,results,test。具体命名和数量可以按照个人习惯改动。
(2)录制和标记语音数据:
使用HTK自带的录音工具HSLAB。运行cmd,在工作目录中输入命令:
hslab zisha.sig
在出现的窗口点击rec录制“自杀”二字,点击stop停止。点击mark和labelas进行标记和命名。标记发音前后的空白区域及词语发音区域,注意各区域不要有重叠。分别命名“sil”和“zisha”。如图4-13所示。
图4-13 语音数据的录制和标记
点击save保存并重命名文件,得到录音文件zisha_01.sig和标记文件zisha_01.lab。
重复上述步骤完成十次“自杀”和十次“抑郁”的录音,共得到20个录音文件和20个标记文件,分别放入sig文件夹和lab文件夹。
(3)提取特征文件:
在test文件夹中新建analysis.conf文件,文件内容如下(各参数含义可参照HTKBOOK):
SOURCEFORMAT=HTK
TARGETKIND=MFCC_0_D_A
WINDOWSIZE=250000.0
TARGETRATE=100000.0
NUMCEPS=12
USEHAMMING=T
PREEMCOEF=0.97
NUMCHANS=26
CEPLIFTER=22在def文件夹中新建targetlist.txt,内容如下(省略内容需要参照各行格式更改文件名进行补全,共20行):
sig/zisha_01.sig mfcc/zisha_01.mfcc
…
sig/zisha_10.sig mfcc/zisha_10.mfcc
sig/yiyu_01.sig mfcc/yiyu_01.mfcc
…
sig/yiyu_10.sig mfcc/yiyu_10.mfcc
输入命令:
Hcopy -A -D -C test/analysis.conf -S def/targetlist.txt
运行成功后可在mfcc文件夹得到20个mfcc文件。
(4)初始化HMM模型:
在models文件夹中新建3个无后缀名文件:hmm_zisha、hmm_yiyu、hmm_sil。因篇幅原因文件详细内容请扫描文末二维码。
在test文件夹中新建trainlist.txt文件,内容如下(省略内容进行补全,共20行):
mfcc/zisha_01.mfcc
…
mfcc/zisha_10.mfcc
mfcc/yiyu_01.mfcc
…
mfcc/yiyu_10.mfcc
在hmms文件夹中新建hmm0文件夹,然后执行命令:
Hinit -A -D -T 1 -S test/trainlist.txt -M hmms/hmm0 –H models/hmm_zisha –l zisha –L lab zisha
Hinit -A -D -T 1 -S test/trainlist.txt -M hmms/hmm0 –H models/hmm_yiyu –l yiyu –L lab yiyu
Hinit -A -D -T 1 -S test/trainlist.txt -M hmms/hmm0 –H models/hmm_sil –l sil –L lab sil
运行成功后可在hmm0文件夹内得到hmm_zisha、hmm_yiyu和hmm_sil三个文件。这一步容易出错,如出现错误可参照错误编码在HTKBOOK中寻找原因。
(5)HMM模型训练:
在hmms文件夹中新建3个文件夹hmm1、hmm2和hmm3。使用命令:
HRest -A -D -T 1 -S test/trainlist.txt -M hmms/hmm1 -H hmms/hmm0/hmm_zisha-l zisha-L lab zisha
HRest -A -D -T 1 -S test/trainlist.txt -M hmms/hmm2 -H hmms/hmm1/hmm_zisha-l zisha-L lab zisha
HRest -A -D -T 1 -S test/trainlist.txt -M hmms/hmm3 -H hmms/hmm2/hmm_zisha-l zisha-L lab zisha
将上述命令中的“zisha”替换为“yiyu”和“sil”,分别运行一次。
运行成功后可以在hmm3文件夹中得到hmm_zisha、hmm_yiyu和hmm_sil三个文件。
(6)建立语法和词典:
在def文件夹中新建gram.txt文件,内容如下:
$WORD=ZISHA | YIYU ;
({START_SIL}[$WORD]{END_SIL})
在def文件夹建立dict.txt,内容如下,末尾需要留一行空白:
ZISHA [自杀] zisha
YIYU [抑郁] yiyu
START_SIL [sil] sil
END_SIL [sil] sil
建立工作网络,输入命令:
Hparse -A -D -T 1 def/gram.txt def/net.slf
(7)识别
1)使用内容分别为“自杀”和“抑郁”的各十个语音文件进行测试。
首先按照步骤(3)提取测试数据的特征文件。
然后在results文件夹中新建reco.mlf文件。在test文件夹中新建hmmsdef.mmf文件,其内容为hmms/hmm3文件夹中的所有hmm_xxx文件数据,第一个复制进去的文件保留全部数据,剩下的文件从第一个~h开始复制,即保留第一个~o。
在test文件中新建hmmlist.txt,内容如下:
zisha
yiyu
sil
然后输入命令:
Hvite -A -D -T 1 -H test/hmmsdef.mmf -i result/reco.mlf -w def/net.slf def/dict.txt test/hmmlist.txt mfcc/test_01.mfcc
如运行正常,可得到START_SIL ZISHA END_SIL的结果。
重复如上操作,完成20条语音文件的识别,识别结果见表4-9。
表4-9 语音识别测试结果
在20条测试数据中,识别准确率为100%。
2)进行交互式识别,在test文件夹中新建directin.conf文件,内容如下:
SOURCERATE=625.0
SOURCEKIND=HAUDIO
SOURCEFORMAT=HTK
TARGETKIND=MFCC_0_D_A
WINDOWSIZE=250000.0
TARGETRATE=100000.0
NUMCEPS=12
USEHAMMING=T
PREEMCOEF=0.97
NUMCHANS=26
CEPLIFTER=22
AUDIOSIG=-1
输入命令:
Hvite -A -D -T 1-C test/directin.conf -g -H test/hmmsdef.mmf -w def/net.slf def/dict.txt test/hmmlist.txt
出现“ready”后即可说话。说一个词语然后回车就能看到识别结果,如图4-14所示。
图4-14 交互式识别结果
至此,一个简单的孤立词语音识别系统便完成了。该系统使用的是整词建模,如果要实现更复杂的语音识别,需要更适宜的建模单位(如声韵母)、更高级的建模方法以及更丰富的语言模型和词典。具体内容可以参照其他相关书籍。
近些年,深度学习在语音识别中的应用日益广泛,Kaldi工具便是一套能搭建基于深度学习的语音识别系统的工具。其最早起源于约翰斯·霍普金斯大学,在发展的过程中有不同的研究者贡献力量,最终发展为现在最常用最广泛的语音识别工具之一。
Kaldi基于C++语言,可在Windows和Linux平台上进行编译。Kaldi工具与HTK相比,主要有以下区别:①Kaldi没有类似于HTKBOOK的使用手册,只有最简单的官网介绍和工程实例,这使得Kaldi的使用门槛更高,要求使用者至少了解shell脚本和语音相关知识;②编写语音的不同:HTK是基于面向过程的C语言开发,而Kaldi是基于面向对象的C++语言开发,因此二者的优劣特点也体现在C语言和C++语言各自的特点,HTK高效简单但要求自行定制内存管理模块和数据结构,Kaldi易于修改和扩展,但可能导致过度封装;③代码理解的难度上,HTK的代码较为陈旧,理解较为困难,而Kaldi是较新的开发工具,代码的理解阅读难度下降。
Kaldi的源代码可直接从其开源地址(https://github.com/kaldi-asr/kaldi)下载获得源代码压缩包,或直接使用git工具从Github网站下载,安装包中有INSTALL文件,写明了安装步骤。
无论是Windows操作系统还是MacOS操作系统,都带有内置的语音输入软件。除了系统自带的听写功能可以完成实时的语音与文字信息的转换,在中文市场还有非常丰富的产品可以实现该功能,各种成熟输入法开发商都建立了比较成熟的中文语音输入产品和软件。除此之外,这些产品还可以完成本地语音数据的识别和文本信息转换。此类产品面向一般用户开发,界面简洁,使用简单,对语音数据的质量要求不高,也不需要编程基础。
由于Macintosh多媒体功能丰富且性能优越,在MacOS平台上的语音识别功能的开发和应用也进行和发展得更超前。早在智能手机普及至当今水平之前,Nuance公司开发的Dragon Dictate等语音识别软件已在MacOS平台上有较为出色的表现。虽然这些产品已经停产,但在当时(2012年以前)其领先于时代的语音处理和识别技术为日后产品内置的各式语音识别和语音输入功能开辟了技术道路,其中包括风靡世界的“Siri”。
除了面向普通用户的软件之外,我国各大IT技术和互联网开发商和语音技术厂商也为有开发需求的个人或企业提供商业语音识别服务,例如通过可简单快速接入的应用程序接口和多种软件开发工具包对外提供满足物流、教育、电商等多领域需求的语音识别服务。
提到“Siri”,在智能手机发展和普及的今天,移动设备上能够实现语音识别的工具和软件可以说是“百花齐放”。在医学日常工作中,比如精神障碍患者就诊过程中的录音病历,如果可以通过移动设备记录语音数据的同时获得文本数据,将会对诊疗和教学科研工作提供巨大帮助。但由于各类APP开发商水平参差不齐,市场缺乏统一监管标准,这些工具的性能、语音识别精准度也优劣不一。