智能播种机嵌入式英语语音识别控制系统设计与研究
2018-08-10刘蕾
刘 蕾
(广东技术师范学院天河学院,广州 510640)
0 引言
近年来,随着语音识别技术的持续升级,人工智能语音助手发展迅猛,已被广泛应用于各个领域,包括消费类电子、智能家居、移动和可穿戴设备、监控、汽车、播种机等。本文采用嵌入式控制技术和隐马尔可夫模型HMM语音识别技术,应用WTV180语音芯片,优化设计了嵌入式英语语音识别控制系统,实现了对智能播种机的英语语音识别。
1 英语语音识别算法
播种机嵌入式英语语音识别控制系统由人和机器构成,人和机器分别扮演命令的发出与执行。命令处理的质量效率直接影响播种机的执行结果,因此声音的大小、音色圆润尖锐及音调的高低之分都对系统具有重要意义。本文研究的嵌入式英语语音识别控制系统,首先需要了解声音的产生机理,并根据其特征建立数学模型;然后从时域、频域上进行分析处理,解析出音频信号。
1.1 语音识别算法的数学模型
从结构上来讲,语音识别算法的数学模型主要包括激励、声道和辐射3部分,如图1所示。G(z)为声门脉冲信号;V(z)为声道传输函数;R(z)为辐射阻抗;A为调节函数能量或幅值的系数。该语音识别控制系统的数学模型中最重要是的获得语音信号的输出函数H(z),表达式为
H(z)=A·U(z)V(z)R(z)
(1)
图1 语音识别算法的数学模型结构Fig.1 The mathematical model structure of speech recognition algorithm
1.2 语音识别算法的预处理
在现实生活中,人们说话的声音是模拟信号,将模拟信号转成数字信号之前,往往需要先进行预处理,也就是采用倍频程衰减对其进行离散化。离散化预处理的目的是将突出信号高频部分,增加声音信号的分辨率,便于后续信号参数的分析。离散化过程一般采用一阶数字滤波器实现,其表达式为
H(z)=1-uz-1
(2)
其中,u(0.9<=u<=1)为系数。假设在某一时间节点n的值为x(n),进行预处理后,则
y(n)=x(n)-kx(n-1)
(3)
其中,k的值为以系数,由高频信号值决定,这里取0.95。
1.3 语音识别算法的特征提取
语音信号的特征一般可以通过之前若干个特征信息进行逼近处理,也就是通过一个语音的多个特征信息可以对实际语音样本进行分析预测。因此,语音识别算法特征提取的准确性直接决定了语音识别的精度。在语音信号的特征提取中,时域特征一般采用幅度、能量、过零率等方式;而频域特征则主要采用线性预测(LPC)、线性预测倒谱系数(LSP)和梅尔倒谱系数(MFCC)等。本文在研究中采用MFCC方法提取频域特征信号,计算步骤如图2所示。
图2 MFCC计算步骤Fig.2 MFCC calculation steps
1.4 HMM语音识别算法
目前,在语音识别领域的研究中,常用的算法主要包括矢量化、动态时间规整、人工神经网络和隐马尔可夫4种。隐马尔可夫模型(HMM)对过程的状态预测效果良好,先被广泛应用于语言识别领域,本文采用该模型算法进行英语语音的识别。
在HMM模型中,先定义1组状态量S1,S2,…,Sn,在时间点n,模型的状态只能是其中某种xn。在起点n=0时间点,初始化的概率矢量π为
πi=P{x0=Si} (i=1,…,n)
(4)
起点n=0之后,后面时刻的状态值只与前面时刻状态xn-1有联系,则其转移概率矩阵A={>ai,j},即
ai,j=p{>xn=Sj|xn-1=Si}
(5)
由于除了n=0其它时间点xn都是隐藏的,因此只能求得各时间点Rq空间下的随机观察矢量On,On与xn(Pn)之间关系的表达式为
Pxn=Si{>On}=P{>On|Si}
(6)
在HMM语音识别算法中,对语音信号的特征提取可以得到On,而在On的概率分布中,一般采用混合高斯分布拟合的方法,对其进行拟合,即
(7)
其中,M是混合高斯分布的阶数值;Cm是加权系数;Y是On的状态值。
针对HMM 语音识别算法首先应该建立需要识别英文语音的词表,假设词表包括V个英文词汇,对每次词建立各自的模型系数λv,即
λv=(Av,Bv,πv)
(8)
在识别过程中,第1步应该提取观察矢量O={>o1,o2,…,oT};第2步则是求解模型系数的λv概率P(O|λ),1≤v≤V;最后求出与最大似然概率相对应的词v*,即为所求的语音信号结果值,即
(9)
2 英语语音识别控制系统硬件设计
随着语音识别控制技术的逐渐成熟,“人工智能AI”逐渐成为全球智能控制的热点,人机交互也随之火爆起来。伴随AI热的“辐射”,语音交互正在显著改变人机互动的方式,引领未来的变革。得益于数据和算法两大“护法”的助力,语音识别控制系统得了一系列突破性的进展,被广泛应用于各个领域。具有语音识别功能的智能播种机在原有技术的基础上,引入英语语音识别,使得工作人员和播种机之间除了常规的交互外,还能够通过语音直接进行相关的控制操作,使得播种机的智能化程度越来越高,更加人性化。语音识别控制系统系统的硬件框架如图3所示。
图3 语音识别控制系统系统的硬件框架Fig.3 The hardware framework of speech recognition control system
本文研究的英语语音识别控制系统硬件部分,采用意法半导体基于Cortex-M3内核的处理器STM32为核心处理器。该芯片为Tail-Chaining中断结构,具有更快的响应速度,且Thumb-2指令集使芯片具有更高的指令效率和更强的性能,具有高性能、低功耗、实时应用等优点,适合于要求高的工控行业。
另外,系统采用WTV180语音芯片进行英语语音信号的处理。该芯片具有以下优点:①采用6kHz频率时,语音识别长度可分别达到10、 20、 40、 80、 170、 340s,内型较多,适用场所多;②芯片内部内置16bits DAC数字/仿真转换器(DAC),内置PSG语音合成器和音质优化算法,音质高。语音识别电路原理图如图4所示。控制智能播种机的语音命令通过麦克风SPK进入WTV180语音芯片,由其处理后将信息通过DATA数据线传送给你STM32嵌入式系统,进行驱动控制,实现对播种机的语音控制。
3 英语语音识别控制系统软件设计
在英语语音识别控制系统软件设计中,采用模块化的编程思想进行播种机语音训练和存储的软件设计,对每条控制指令进行10次训练;结束训练后,通过语音输入接口函数向智能播种机语音识别模块发送识别请求,处理结束后再通过结束输出接口函数输出识别结果;最后主程序对识别结果进行判断,并跳用驱动控制模块驱使智能播种机进行相应的操作。在设计过程中,总共包括run、backwards、left、right和stop等5条英语控制指令。英语语音识别控制系统软件流程如图5所示。
图4 语音识别电路原理图Fig.4 The schematic diagram of speech recognition circuit
图5 英语语音识别控制系统软件Fig.5 The control system software of English speech recognition
图5中,在未向英语语音识别控制系统发送指令前,语音识别系统处理静默状态,智能播种机没有语音识别的功能。当收到语音控制系统后,智能播种机才会初始化语音识别控制系统,处于语音识别状态,实现对智能播种机的语音控制,提高智能播种机实时性和稳定性。软件设计核心代码如下所示:
void CBodyBasics::MSSListen()//语音识别初始化函数
{
if (FAILED(::CoInitialize(NULL))) //初始化COM接口
MessageBox(NULL, (LPCWSTR)L"COM接口初始化失败!", (LPCWSTR)L"提示", MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2);
HRESULT hr = m_cpRecoEngine.CoCreateInstance(CLSID_SpSharedRecognizer);//创建Share型识别引擎
if (SUCCEEDED(hr))
{
hr = m_cpRecoEngine->CreateRecoContext(&m_cpRecoCtxt);//创建识别上下文接口
hr = m_cpRecoCtxt->SetNotifyWindowMessage(m_hWnd, WM_RECORD, 0, 0);//设置识别消息
const ULONGLONG ullInterest = SPFEI(SPEI_SOUND_START) | SPFEI(SPEI_SOUND_END) | SPFEI(SPEI_RECOGNITION);//设置我们感兴趣的事件
hr = m_cpRecoCtxt->SetInterest(ullInterest, ullInterest);
hr = SpCreateDefaultObjectFromCategoryId(SPCAT_AUDIOIN, &m_cpAudio);
m_cpRecoEngine->SetInput(m_cpAudio, true);
ullGrammerID = 1000;
hr = m_cpRecoCtxt->CreateGrammar(ullGrammerID, &m_cpCmdGrammar);
WCHAR wszXMLFile[20] = L"";//加载语法
MultiByteToWideChar(CP_ACP, 0, (LPCSTR)"CmdCtrl.xml", -1, wszXMLFile, 256);//ANSI转UNINCODE
hr = m_cpCmdGrammar->LoadCmdFromFile(wszXMLFile, SPLO_DYNAMIC);
hr = m_cpCmdGrammar->SetRuleState(NULL, NULL, SPRS_ACTIVE);//C&C
hr = m_cpRecoEngine->SetRecoState(SPRST_ACTIVE);
}
else
{
MessageBox(NULL, (LPCWSTR)L"语音识别引擎启动出错!", (LPCWSTR)L"警告", MB_OK);
exit(0);
}
}
4 英语语音识别系统性能测试
为了其在实际应用中能够快速、准确地识别出英语语音命令,以验证系统性能、效率为出发点,针对实际应用需求,利用MatLab软件进行了模拟试验。为了分别验证语音识别的准确性和是否能够正确引导智能播种机的移动,本文进行了两次试验:在英语语音识别准确率测试中,5条语音命令分别测试20次,结果如表1所示;在智能播种机语音控制仿真中,结果如图6所示。
表1 准确率测试结果Table 1 Accuracy test results
从表1可以看出:智能播种机英语英语识别系统的准确识别在85%以上,识别效率较高,满足设计需求。图6中,系统能够根据指令进行run、backwards、left、right和stop操作,经过13次的语音控制后,准确到达目的地。这进一步说明系统能够准确响应英语语音命令的控制,具有较高可行性。
图6 智能播种机英语语音控制仿真结果Fig.6 The simulation result for English speech control of Intelligent seeding machine
5 结论
本文设计的智能播种机英语英语识别系统,采用HMM语音识别技术,英语识别准确率较高,且能够准确响应英语语音命令的控制,具有较高的可行性。整个系统价格低廉,可移植性好,稳定性和可靠性也较高,具有一定的实际推广应用价值,经过简单改进后可适用于农业播种机智能语音控制平台。