李永宏
(西北民族大学中国民族语言文字信息技术教育部重点实验室,甘肃兰州730030)
基于MATLAB的呼吸和气流信号分析系统
李永宏
(西北民族大学中国民族语言文字信息技术教育部重点实验室,甘肃兰州730030)
呼吸是语言产生的动力基础,通过呼吸带传感器和气流气压计可以实时地对发音过程进行信号采集.文章在大量分析和深入研究的基础上,利用matlab编程语言设计并实现了呼吸气流信号分析程序,功能包括常规的语音信号处理功能、呼吸和气流信号语言学标记功能、呼吸和气流参数的提取和保存等.系统的开发为言语动力的研究提供了方便的工具.
气流信号;呼吸信号;分析系统;MATLAB
呼吸在语言产生过程中发挥了重要作用,言语产生是一个复杂的生理过程,语言中枢下达命令,这些命令表现为神经脉冲信号,指挥发音器官的肌肉产生运动,因此出现了气流气压的变化、声门的动作和声腔共鸣系统的调节,最终输出可懂的语言[1].国外有大量的文献研究发音的呼吸和气流问题,国内从上世纪80年代还进行发音气流的研究[2].国内最早采用呼吸带进行的研究是针对不同文体朗读的呼吸韵律研究[3].目前呼吸带信号的气流气压信号的研究逐渐地扩展到了汉语方言和民族语的研究中.通过呼吸带传感器和气流气压计可以实时地对发音过程进行信号采集.采集的信号通过程序处理得到研究所需的各项参数.Matlab是一个高度集成的语言环境,在该环境下既可以进行交互式的操作,又可以编写程序、运行程序并跟踪调试程序.除了在理工方面Matlab比较普及外,在言语科学研究方面,Matlab也发挥了比较重要的作用,开发了大量的面向语言研究的程序和软件[4].本文设计呼吸气流信号分析程序,利用Matlab编程语言在Windows平台上进行了实现,主要用于发音动力相关的各项研究.
发音人佩戴面罩采集发音时的气流气压信号,同时利用采集呼吸带信号.PAS6600系统由带有双手柄的面罩、气流面具、压力传感器、测试管和麦克风等组合而成.麦克风主要用于采集语音信号,气流管用于气流的采集,入口管用来采集发音时的气压信号.文件保存格式为系统默认的nsp格式,信号采样率为22 kHz.将两根呼吸带传感器分别系在发音人的胸部和腹部,呼吸带传感器可以感应到胸围和腰围收缩扩张所引起的呼吸带长度变化,并由压电设备将呼吸带长度的变化转变为电信号.通过Powerlab采集器采集两个通道的呼吸信号,同时采集语音和嗓音信号,采样率为40 kHz.具体的信号采集过程和设备连接关系见图1.
图1 呼吸气流信号采集框架图
由于呼吸带信号和气流气压信号都是独立采集的,而且采样率也不同,所以,要同时进行研究,就需要对信号进行同步计算,并合并成同一组信号.信号处理的过程主要包括以下几个步骤:
1) 气流气压计采集的信号格式为nsp格式,编写信号读取程序区分文件头和文件数据,然后把文件数据转换成三通道的矩阵向量,并保存成wav文件格式.
2) 利用Powerlab采集器采集的四通道信号的采样率是40 kHz,可以通过利用重采样函数改变采样率,也可以利用一些语音编辑的软件进行采样率的变化,最终把四通道信号的采样率降低为22 kHz,这样频谱能量的分量可以到11 kHz,采样率能够满足语音参数的分析.
3) 两组设备采集的数据并不对齐,主要是因为两套很难同时采集数据,而且两组数据的采样率也不同,气流气压计采集的声音也比较闷.所以,以两组信号中的声音信号为标准信号,利用模板匹配的方法进行信号对齐,这样就可以把两组不同设备采集的信号组合在一起.
4) 呼吸信号和气流气压带有很多细微的高频噪声,所以需要利用低通平滑滤波的方法进行减噪,例如滤波器可以采用零相位数字滤波filtfilt(b,a,x),这样提高了标注和参数提取的准确性.
5) 提供对呼吸信号和气流气压信号进行导数的功能,这样可以准确地找到信号变化比较极端的拐点,这些点是信号物理意义的关键点.
6) 利用局部最大值法或Matlab信号处理工具箱中的findpeaks函数找出一段呼吸信号和气流气压信号的准确峰值位置,便于后期的参数提取,在数据量比较大的情况下此函数耗时较长.
不同信号同步研究的目的就是为从声学或生理的不同角度来观察声音的特性,主要是通过提取的参数来表征.
1) 语音信号是最基本和最重要的信号,其他信号的采集和分析都要以语音信号作为统一标准.语音信号主要提取的声学参数有:基频、振幅、时长、前五阶共振峰及其带宽、频谱和语图等.基频的提取已采取自相关和倒谱法等多种方法,共振峰主要采用对数谱的算法和协方差相结合的方法.
2) 不同类型的音位气流气压特征差异很大,例如辅音主要的参数有:平均气压(cmH2O)、呼出气流量(Liters)、平均气流率(Lit/Sec)、辅音成阻时间(ms)、辅音时长(ms) 、气动阻力(ds/cm5)等参数.元音参数主要包括平均声压(dB)、平均气流率(Lit/Sec)、发声效率(ppm)、气动阻力(ds/cm5)、基频(Hz)和发声功率(Watts)等.
3) 呼吸信号Powerlab公司的Chart7软件采集,提取吸气相参数和呼气相参数,包括不同层级的幅度、时长、呼吸斜率、呼吸节奏时长等参数.呼吸重置时长是指从开始吸气到开始呼气之间持续的时间.呼吸重置幅度是指一次吸气过程中呼吸信号数值的变化幅度.
3.1 文件处理
1) 文件的读入.此处的文件指已经经过信号预处理和合并的wav文件.文件包括语音信号、嗓音信号或者语图(可选)、气流信号、气压信号、胸呼吸信号和腹呼吸信号(可选).文件头使用原始的国际RIFF标准定义的wav文件头,数据为6列的矩阵数据.
2) 文件的保存.可以对编辑过的信号或者用鼠标选定一部分信号进行保存,保存的格式6通道的wav文件.
3) 带标记文件的保存.程序提供了对信号进行标记的功能,在保存文件的同时可以把标记的位置也保存在文件信号数据的后面,这样方便随时查看标记的准确性.所有的标记参数都按国际RIFF标准定义,保留在原始wav文件的后面.
4) 带标记文件的打开.带标记的wav文件结构比较复杂,文件的前半部分是6通道信号数据,后半部分是标记的类型和位置.
3.2 编辑与查看功能
1) 删除功能.利用鼠标左键选中一段信号,点击剪切菜单可以对6个通道的信号同步删除掉选中的信号.
2) 缩放功能.纵向放大和缩小信号,利用鼠标左键点击要操作的坐标,可以对该通道的信号进行能量的放大和缩小,并制定放大和缩放的倍数.
3) 显示功能.横向放大和缩小信号,利用鼠标左键选中一段信号,点击放大菜单,可以让6个通道的选中信号同步填满窗口,点击缩小菜单,可以让6个通道的信号完整地在窗口中显示.
4) 信号叠加功能.为了更好地对信号之间进行比较,系统设计了信号叠加功能,可以对任意选择的多个信号进行叠加显示.
5) 播放功能.可以播放整个语音信号,也可以播放鼠标左键选中部分的语音信号.
3.3 标记功能
标记功能主要是为参数提取做准备,不同通道的标记都是相通的,这样便于不同信号关键位置的比较.标记分自动标记和人工标记两种.
1) 自动标记是利用求导数或者局部最大法对呼吸信号和气流气压信号的波峰和波谷位置及拐点位置进行标记.
2) 人工标记是根据研究的需要,在必要的位置,例如辅音的开始和结束位置,元音的开始和结束位置等进行标记,这样便于后续的音位分析.
3) 标记删除.用鼠标左键选中错误的或者不需要的标记,然后点击删除标记菜单进行删除.
3.4 参数提取与保存
对标记好的信号进行有选择的参数提取,不同的信号提取的参数不同,也可以根据需要临时增加参数提取的函数到系统中.提取的参数值临时存储在txt文件中.另外,系统也提供了批量提取参数的功能,对于标记模式相同的同类型的文件,可以统一存放到某一个文件夹下,批量对这些带有标记的文件进行参数提取,并统一保存到Excel中.
程序的主界面如图2所示,分为菜单部分、操作按钮部分和信号显示部分.菜单包括文件、标记、查看、播放、参数提取和帮助.软件界面共分为6个通道,从上到下分别为语音、语图、气流信号、气压信号、胸呼吸信号和腹呼吸信号,如图2所示.横坐标按时间显示,单位为毫秒.图中的信号分别是[ba]和[pa].
言语发声过程的研究一直是言语科学研究的重点,进行比较系统的空气动力学测量和研究,找出基于气流气压的生理参数和声学参数之间的对应关系,有着深刻的理论意义和广泛的应用价值.本软件在Matlab环境下进行编写,采用GUI框架结构编写,具有交互性强、操作简单的特点.使用者经简单的学习之后,可以熟练掌握软件操作.数据保存为表格结构,便于后期进一步的统计和分析.该软件可以应用于语音生理研究、语音教学和言语工程研究.呼吸气流信号的分析程序还不够完善.随着研究的深入,参数的设计也要不断地更新,气流气压信号、呼吸带信号和语音信号之间的关系还需要进一步的深入探讨.另外,随着信号种类的增多,信号之间的同步也是需要解决的问题.
[1] 吴宗济,林茂灿.实验语音学概要[M].北京:高等教育出版社,1987.5.
[2] 吴韩娜.生理语音学仪器—气流气压计[J].北大语音乐律报告,2008,12.
[3] 谭晶晶,李永宏,孔江平.汉语普通话不同文体朗读时的呼吸重置特性[J].清华大学学报,2008.4.
[4] 李永宏,马强,赵琦.语言科学研究的MATLAB实现[M].北京:国防工业出版社,2013.4.
Analysis Sustem of Respiration and Airflow Signals Based on MATLAB
LI Yong-hong
(Key Lab of China's National Linguistic Information Technology, Northwest University for Nationalities, Lanzhou 730030, China)
Breath process is the dynamics bases of language production. The signals of pronunciation course could be real-timely collected with respiratory sensor and air pressure gauge. On the bases of massive analyses and researches, in this study the signal analysis procedure of breathing airflow were designed and realized by utilizing Matlab programming language. The functions of the analysis procedure included the voice signal processing, linguistic markers of respiration and airflow signals, extraction and preservation of respiration and airflow indexes. Our findings could provide a convenient tool for further studying language dynamics.
Airflow signal; respiration signal; analysis system; MATLAB
2015-11-20
国家自然基金项目资助(No.11564035).
李永宏(1979—),男,山西临汾人,博士,副教授,主要从事实验语音学方面的研究.
TP391
A
1009-2102(2015)04-0019-04