【ongoing】语音解剖学 Speech Anatomy

前言: 在语音领域(无论你的目标是语音识别,语音合成,亦或是其他跟语音相关的项目), 曾作为或者目前仍是初学者的你,一定经历过这样一个步骤。某一天,兴致勃勃地翻开了刚到手的语音教材,回味无穷的读完了书的序言以及第一章的引言,觉得自己一定要在某方面创下一番天地,已经准备好接受各种理论和挑战的洗礼。翻开书的第二章,两个大字映入了你的眼帘,“解剖”。此时此刻你也许会想,这很科学,毕竟我们处理的是语音,一切都有着其生物基础,想必我们能从中受益良多。而无论你是小心翼翼的一字一句的斟酌也好,还是狼吞虎咽的咀嚼也罢,你会发现大多数生理细节非常不重要,或者说各种晦涩难懂的专业名称让你云里雾里。 不过好在聪明的你和作者总不会让这份辛苦是分无用功,虽然有很多琐碎没有给你留下深刻的印象,你还是依然能够有所收获。比如对发声机理的研究是如何映射到语音合成技术中的,对人耳听觉的测算如何改善了语音识别的数据特征,对大脑神经的实验又如何延伸出了当下最火的神经网络模型。 作为笔者的我,刚刚正式踏入语音领域,了解到的还只是皮毛与表面,但依然怀揣着一颗勇往直前、不撞南墙不回头的心。希望通过对人体的生理更细致、更形象的了解与研究,产生出更多有创造性的、有意义的概念,为语音领域添个砖、加片瓦。因此,本文会不断更新和整理与语音相关的生理知识,从文字,二维、三维图片,模拟或真实视频、语音等多方面来对生理构造进行描述,旨在使各个细节更加清晰。也欢迎对相关内容的感兴趣的人,提出宝贵的建议与意见,望一起点燃精神之火,撩了语音这个广阔的平原。 正文序: 从狭义来讲,语音单纯是指人发出声音这一行为,它发生在人呼吸运动中的呼这一环节,与之相关的生理结构似乎并不算很多。然而从广义来讲,产生、接收、理解语音都是语音相关的人体活动。从这个角度来看,人体上半身的所有器官几乎都参与了这项活动。按功能的不同,可以将上半身划分为四个区域。用于语音气流的开端肺、气管;用于调节气流从而发声的喉、咽、口、鼻;用于接收语音,并对自身语音产生反馈的耳;通过控制以上所有运动,并对语音进行理解的大脑。接下来就会依照如上这个自底向上的次序,来对这四部分生理结构和功能依次进行讨论。 *注: 由于篇幅有限,以及便于阅读。有些更加细枝末节,似乎偏离了语音讨论范畴的内容,会用紫色标识出来。如有兴趣,点击可以跳转到相关的帖子,查看更多详细的解释。 Ⅰ气流的产生: 想要讨论语音气流的产生,就不得不从人的呼吸开始讲起。人产生呼吸的物理本质是肺部与外界气压差所产生的气流运动。当肺部的气体压强小于人体外的气体压强时,就会产生从外界流向人体肺部的气流;反之就会产生由肺部流向外界的气流,这个气流也就是我们语音的载体了。再进一步讨论压强变化的原因之前,首先明确一下本文所认定的气流的通道,细节如下图所示。气体可以分别从鼻腔与口腔流入咽,再流入喉,经过气管与各级支气管输送到肺部,最终停留在肺泡中与血管中的血浆进行气体交换。 依旧从物理层次来分析,压强由三种因素来决定,分别是温度、气体的量和体积。前两者与压强成正比,后者与压强成反比。人是一个恒温动物,虽然这个恒温是在调节中动态实现的,但其动态变化似乎不会对气体压强产生极大的影响,因此认定这个温度变化在呼吸中的作用可以忽略不记。 同样的,虽然二氧化碳、氧气等气体分子在肺部的肺泡与血管血浆中不断发生着气体交换,并且显而易见的改变了肺部气体的量,但这份改变在数量级似乎远小于气体体积在呼吸中产生的改变,因此也可以忽略不计。以上两处忽略不计确实缺乏更具体的数据和实验进行作证,如果今后有更多的发现,或许会对其进行修正与补充。综上所述,气体的体积成为了影响呼吸的决定性因素。而通过观察整个气流流通的通道可以发现,体积真正发生改变的地方就在于人体的肺部,或者说人体的胸腔之中。 又是什么导致了肺在胸腔中的体积变化呢,而什么是胸腔呢? 在回答这一问题之前需要简单描述一下肺部的生理构造。如下图所示,与这份体积变化有关的生理结构在内而外分别是:①肺(lung)本身。②包围在肺外部胸膜(pulmonary pleurae)③肋间肌(intercostal muscles)及肋间神经(intercostal nerve)④横膈膜(diaphragm)及膈神经(phrenic nerve)。其中胸膜虽然体积很小,但确实连接各个部分的一个重要环节。他(胸膜)是由两层浆模(serous membranes)围绕而成的,有点像游泳时用的救生圈。胸膜内侧的浆模贴紧肺的表面称为壁胸膜(parietal pleura),胸膜外侧的浆模贴紧肋骨下的肌肉以及横膈膜的上表面称为脏胸膜(Visceral pleura)。胸膜内部气体较少,始终低于大气压强,内部的压强被称为负压。当胸膜没有破损时,肺部的压强也永远大于胸膜内的压强,因此肺与胸膜时刻相依在一起。肺随着胸膜的移动而移动,而胸膜随着肋骨间的肌肉以及横膈膜的移动而移动。因此决定肺部体积的因素有两个,一个是肋间肌,一个是横膈膜。以肋骨环绕为顶,横膈膜为低的腔体,被称为胸腔。因此,胸腔的变大与缩小,同肺部的变大与缩小其实是一致的。后文不再做以区分。 这两个因素之间其实是相互独立又相互影响的。肋骨之间存在肋间肌,并由肋间神经所控制。被控制的肋间肌又可以分为肋间外肌和肋间内肌,分别使得肋骨向前以及两侧扩张和收缩,从而造成胸腔的变大与缩小。横膈膜是一个凸型的由肌肉纤维组成的较薄的隔膜,分隔着胸腔和腹腔。隔膜肌的收缩可以使得横膈膜中心向下移动,两侧向上移动从而扩大胸腔,挤压腹腔。当腹腔受到挤压时,腹肌就会向外膨胀,也就是肚子会鼓起来。而且受到挤压的腹腔也会间接对肋骨造成影响,使其产生一定程度的扩张。 相反腹部肌肉,腹肌(abdominal muscles)还可以主动收缩,这会间接使横膈膜中心上升,两侧下降,以及肋骨一定程度的缩小,最终导致胸腔的减小。 除了肋间肌和横膈膜这两种肌肉之外,其实还有上文提到的腹肌以及其他的很多肌肉可以对呼吸产生着影响。值得一提的是这些肌肉并不一定都会在呼吸时发生作用。此时我们要把呼与吸分开来谈了。在正常的吸气时,肋间外肌与横膈肌会主动收缩,而在快速或者很浅的吸气时,人下意识地,只会控制肋间外肌发挥作用,此时压强的变化会比较小,吸入的气体总量要小于两种肌肉同时作用所吸入的气体总量。这也是为什么唱歌的人往往需要专门练习腹式呼吸,其实就是让人体时时刻刻都利用横膈肌来进行呼吸,从而保证吸入更多的气体,以便于唱歌时使用。在正常的呼气时,几乎没有什么肌肉在发挥作用,仅仅依靠各个组织与器官的自然收缩,逐渐恢复吸气时所造成的变化,从而让胸腔自然的缩小。当有需要时,肋间内肌和腹肌以及很多其他肌肉则可以辅助加强这一变化,从而让胸腔更快以及更大程度的缩小。 目前为止我们知道了,人体就是通过控制各种肌肉的收缩与松弛,造成了胸腔的变大与缩小,改变了肺部内的压强,最终造成了人的呼和吸。那人体是通过什么来控制肌肉的呢?又为什么要控制肌肉,来完成呼吸这项活动呢?答案很简单:神经;补充血液中的氧气,排除血液中多余的二氧化碳。下面我们就神经展开更详细的探讨,所有的神经的控制最初都来源于大脑,因此我们就从大脑开始讲起。 启迪: 在讨论了上述语音气流产生的生理构造之后,针对于语音研究来说到底能有什么意义呢? 就目前而言,语音模型中真正涉及呼吸这一概念的,似乎只象征性的存在于语音合成中的声源-滤波器模型(source-filter)。而且作为声源的呼,为了计算上的简便或者实现上的可行,通常被简化为仅含有有限频率分量的声波或者白噪声。如此一来,上述所讨论的一大堆的呼吸的机制,就完全被省略掉了,真是可惜。 诚然,从声学角度来考虑,口、鼻、咽、喉等对气流所产生的调节决定了语音当中的特性,而肺部、气管传出的气流的特性与最终的语音相去甚远,被忽略也就无可厚非了。然而在很多现场教学中,对人咬字、唱歌等语音相关的训练,呼吸的作用缺从没有被忽视过。这确实是由于一个现实限制所决定的。因为呼吸是可以用肉眼或一些简单的检测装置,通过对体表的观察,就能分析出来的;而口、鼻、咽等部位的动作缺很难被观察,从而给与指导。但刨除这个现实问题来看,这依然能够证明,呼吸在语音中存在着不可忽视的影响,对呼吸的控制可以直接对语音产生影响。更具体的分析,呼吸的方式会直接决定喉部声门处气体压强的大小,这最终会影响声音的强度(幅度),连续性以及声带震动的频率。而以上三点更是决定一个歌手演唱水平的关键因素。[2]从这个角度看,呼吸似乎决定了人类对语音控制程度的高低。另外在生理机构方面,控制呼吸的神经与肌肉,与控制口、鼻、喉、咽等改变气流的神经与肌肉之间也许存在着反馈,从而相互影响。 不成熟的模型方面的思考: 1 在语音识别和合成中,对于韵律方面的研究,也许呼吸是一个很有必要引入的参数。 2 从生理上讲,人说话时长的上限完全由呼吸来决定。因此,在语音识别中,或许可以通过呼吸间隔,以及每一次的发音长短来预判下一次发音的长短。 3反过来考虑,如果能从语音中分析呼吸的特征,本身就有其医学意义。呼吸的频率就是生命特征(vitals)的一个很重要的指标。       参考文献: 【1】Fundamentals of Speaker Recognition, Homayoon Beigi, 2011 【2】The science of the sining voice, Johan […]

C++学习记录贴

在阅读公司的decoder的C++代码,有很多细节不知道,不清楚,在此做记录,加深印象。 1 C++类成员冒号初始化以及构造函数内赋值    , 不仅仅是类如此,struct 中也是一样的道理。 2 size_t为什么存在?   3 void * 及Void的用法 4 static_cast, dynamic_cast, const_cast探讨 5 auto_ptr, shared_ptr, weak_ptr, unique_ptr, c++ 智能指针用法详解 6 boost::program_options 用法详解 7 【C++11】新特性——引入nullprt  8  深入浅出windows的dll文件 ;  Dll in linux(英文) 【】

简明 Vim 练级攻略

Originally posted on globalinheart(蓝心):
vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。 ——————————正文开始—————————— 你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM幸存下来,然后一点一点地学习各种戏法。 Vim the Six Billion Dollar editor Better, Stronger, Faster. 学习 vim 并且其会成为你最后一个使用的文本编辑器。没有比这个更好的文本编辑器了,非常地难学,但是却不可思议地好用。 我建议下面这四个步骤: 存活 感觉良好 觉得更好,更强,更快 使用VIM的超能力 当你走完这篇文章,你会成为一个vim的 superstar。 在开始学习以前,我需要给你一些警告: 学习vim在开始时是痛苦的。 需要时间 需要不断地练习,就像你学习一个乐器一样。 不要期望你能在3天内把vim练得比别的编辑器更有效率。 事实上,你需要2周时间的苦练,而不是3天。 第一级 – 存活 安装 vim 启动 vim 什么也别干!请先阅读 当你安装好一个编辑器后,你一定会想在其中输入点什么东西,然后看看这个编辑器是什么样子。但vim不是这样的,请按照下面的命令操作: 启 动Vim后,vim在 Normal 模式下。 让我们进入 Insert 模式,请按下键 i 。(陈皓注:你会看到vim左下角有一个–insert–字样,表示,你可以以插入的方式输入了) 此时,你可以输入文本了,就像你用“记事本”一样。 如果你想返回 Normal 模式,请按 ESC 键。 现在,你知道如何在 Insert 和 Normal 模式下切换了。下面是一些命令,可以让你在 Normal 模式下幸存下来: i → Insert 模式,按 ESC 回到 Normal 模式. x → 删当前光标所在的一个字符。 :wq → 存盘 + 退出 (:w 存盘, :q 退出)…

[总结]语音识别职业发展Aug2017

这篇文章起源于,知乎的一个邀请《即将入学的语音学研究生,未来希望从事语音合成以及语音识别方面的工作,需要学习哪些技能?  除了希望以下的回答能够给这个问题提供一些思路以外,同时也是对入职3个多月以来所干,所学,所想的一个总结,希望能从中明确一些未来的职业规划。 问题描述: 题主今年考上东部某211中文系应用语言学下的语音学方向研究生,了解到导师研究方向丰富,包括:语音韵律的分析和建模,语音声学特征与发音生理、听觉心理、脑神经机制、语言结构、交际情感、社会文化之间的关系,以及语音信息在人机智能通讯、语言教学实践、言语康复工程中的应用。心感迷茫,不知道未来是否能同自己规划的一样。如果不能,题主希望能够以研究生3年作为一个缓冲期,不断充实自己,学习技能,故而求问。 最近听从身边朋友的建议已经开始自学python。 就问题而言,我的回答会稍微有些偏题,不会针对文科生的身份进行特别多分析,因为我不是很清晰地了解文科生与理科生思维上的差别。并且其他人也已经在这方面进行了很多的讨论了,我也说不出更多了。 我所想提供的是,在语音识别的团队或者部门中,现阶段什么知识技能是重要的,甚至不可或缺的。 另外还需要声明的是我的身份标签,这样是为了便于理解这个回答是站在什么角度,什么高度上写出来的。我是一个刚刚入职语音识别领域3个多月的语音工程师(经验少),所在的公司是美国的一家规模很小的公司(识别英语),语音识别的技术团队也就是5人左右(规模小)。所以我的情况与比较大型的公司或团队有所不同。表现为两个方面。在系统的模型方面,大公司往往采用最新的模型(通过足够的人手来更新跟进系统,通过大量的训练数据和优良的计算设备来得到理想的识别率)。而小团队由于各个方面的欠缺,往往是对历史稳定模型的微调,以相对较缓的速度朝着最新的方向发展。即使如此,小团队依然还能存活就在于第二个方面,目标的不同。 大公司往往面向的群体大或者识别的内容宽泛,小团队往往面向特定的团体或者识别的领域比较局限。因此,两者或许在最终结果上能够有着不分伯仲的表现。物尽其用吧。综上,我的视角更多的来源于小团体,而非大公司。 现在开始正面回答问题(图片与文字相互解释):   上方的结构图,是依据我所见到过的语音识别工程来绘制的。黑色实线框为通常都会含有的模块,虚线框则表示该模块不一定会存在于所有语音识别系统中,红色文字标识的是可能涉及的知识、理论、工具、编程语言等。红字的部分有些混乱,也肯定有很多缺失,这是因为我对于整个系统还没有完全的掌握,以后等我了解更深入,再进行更改吧。 各个模块细节,在此就不一一做以阐述了,毕竟这不是要讨论的内容。我简要地用文字描述一下整个流程。 语音识别在初始通常分为两条线,一条是语音,一条是文本。 对于语音这条线来说,语音经过采集、传输最终存储到某终端。然后存储好的语音经过预处理、特征提取的变化之后,用来训练各种神奇的声学模型。前者大多涉及硬件与通信方面的知识,后者大多涉及的是机器学习方面的知识。不过在语音领域,后者又一般局限在几个模型之中(上图中列出了具体名字)。这个部分训练时的输入是生活中的实际语音,训练的是模型中的各个参数。 实际应用时输入的是实际语音,输出的是这个语音中每一帧有可能是什么音的概率。 对于文本来说,首先是收集与项目相关的文本。然后就是对文本进行一定的预处理,再训练某种语言模型(大多是N-gram)。因为我对语言模型的实践经验特别少,暂时还不能指出其中最需要的知识技能,但应该有一些和NLP(自然语言处理)是相关的。(值得一提的是,NLP中的N-gram,几乎是每一个语音人都知道的东西)。从实践上来讲,语言模型的作用就是限定语音识别能够输出的结果。基于项目,一般有两种需求。一种需要输出的内容是有限的,可数的。一种是输出内容无限的,不可数的,在一定领域内有意义的。 这个部分训练的时候输入就是文本,训练的是你所设计的模型的参数。 实际应用时输入的是一串文本,输出的是这串文本合理的概率。 理论上有了上述两个模型之后就可以进行语音识别了。但实际实现中出于效率的考虑,希望能够把两者结合在一起。因此人们就发现了WFST这个神奇的模型,他可以有效的把声学模型和语音模型结合在一起,以便于更加快捷,高效的得出识别结果。这所涉及的理论基本就是WFST本身,及其如何应用在语音模型中。实践时需要掌握的则是任何能够操控WFST的工具或代码。 再得到语音识别结果之后,由于实际项目的需求,很有可能还有额外的操作,对识别的内容进行进一步的分析。比较常见的需求是信息抽取(IE)。这里和语言模型其实是相呼应的。这一步骤的本质就是将无限可能的文本,改变为有限的,结构化的输出。所需要的知识我预计是逃不出NLP的圈子的。 最后语音识别或者NLP分析之后的结果会送到前端,就完全跟实际项目有关,而跟语音识别这一技术无关了。这时考验就是纯纯的代码开发方面的能力了。 最后的最后回到问题本身,从文科背景来考虑,我觉得NLP可能是更适合的一个在语音领域发展的方向,或者寻求方法将自己对语言的研究成果转化到语音识别中语言模型的构建上。至少从我所在的团队来看,是真的急需这样的人才的。另外,从工作的角度,如果你觉得你所学会的内容,能对我上述所提到的任意一个模块,有所帮助,都是可以的,不需要非得掌握每一个模块,有个概念就可以了。另外的另外,这里提到基本都是研究生级别或者本科生高年级需要掌握的技术。如果你发现哪个技能实在理解不了,可能需要再往回找相关的基础知识来补充,补充的方式可以有找国内、外的公开课,看国内外的教材。(如果你选择看语音方面的教材话,有些教材会在书的附录中涵盖基础知识的教学。) 最后的最后的最后回对我自己说,我目前为止的对各个模块都有一丝或者一些的接触。图片中列出来的技能肯定是我有所接触,才知道的。 目前这三个月功夫花在了有限可能的语言模型上(即利用Thrax搭建基于命令的Fst)以及一个较简单的基于某医疗app的IE系统。 接下来的一两周时间用来巩固当前的技能。再之后可能要转向decoder方向。我急切的想要了解到底WFST好在哪里,能否做更多的扩展,使语音识别的模块更多的联合在一起。            

【ongoing】语音解剖学-补充材料一-呼吸 Knowledge of Breathing

本文旨在对博文《语音解剖学 Speech Anatomy》中呼吸章节的内容,进行更多补充说明。 一,有关气体通道: https://en.wikipedia.org/wiki/Breathing , Passage of air 二,有关气体温度: Usually air is breathed in and out through the nose. The nasal cavities (between the nostrils and the pharynx) are quite narrow, firstly by being divided in two by the nasal septum, and secondly by lateral walls that have several longitudinal folds, or shelves, called nasal […]

罗宋汤(高压锅)

  成品(final)   材料(materials) 西红柿、土豆、牛腩、洋葱、番茄酱(这次没有)、姜、葱、糖、盐、生抽、老抽 步骤(steps) 1 牛腩切成小块,过水。 2 姜切片,放入高压锅中,倒入牛腩与适量水,开煮 3 西红柿、土豆、洋葱切小块, 4 葱花炝锅,将所有材料倒入,放入锅中炒熟,抄时加糖、盐、生抽、番茄酱适量 3 待洋葱变透明、西红柿稀烂时,关火,倒入高压锅中,与牛肉一起炖。 4 高压锅盖盖,上汽30分钟,焖10分钟,完毕~

五香干脆面

  成品(final)   材料(materials) 挂面、油、五香粉、蚝油、盐 步骤(steps) (来源) 1 挂面开水煮七分熟,捞出放入冷水中 2 捞出挂面,加入蚝油、五香粉、盐适量,搅拌 3 倒油,开火 4 每次用筷子卷出一小部分挂面,下入油锅 5 捞出,冷却后食用

抱蛋煎饺

  成品(final) 材料(materials) 鸡蛋、速冻煎饺、油、水、醋、葱、黑芝麻(这次没有) 步骤(steps) (来源) 1 平底锅放适量油,加热,油热下煎饺 2 大火煎一分钟,加开水,没过饺子1/4 3 两个鸡蛋打散,待水快煎干时,均匀导入锅内 4 鸡蛋成型后,撒上葱花,黑芝麻 5 关火,倒一些香醋,开吃。