盲人开发人员如何单手构建语音合成器



我们所有人都以某种方式遇到了视觉障碍的用户。那些负责UI的人员,无论是网站,移动应用程序还是任何其他软件,都最有可能知道需要考虑这些人的需求,因此制定了增加对比度,放大字体等模式。



但是,如果用户完全失明并且所有这些模式都不能使他的生活更轻松,该怎么办?这是屏幕阅读器和声音合成器进入竞技场的地方,这是他们无法没有的。我今天想告诉你其中的一个。



它从RhVoice调用,并在Habré的几本出版物中提到。但是您知道吗?很多人认为它是俄语(不仅是俄语)语音的最佳免费合成器,它是由完全盲目的开发商Olga Yakovleva独自编写的吗?



今天,我们恢复了历史正义,并从总体上了解了合成器本身,尤其是奥尔加。



让我们立即 打开所有卡:合成器github合成器



代码在GPL下免费分发,这意味着任何人都可以将其集成到他们的产品中。在以下三个平台上可用:Windows,Linux和Android。Olga仅是开发人员,并且在Linux中工作。俄语语音的最好的(开源的)合成器,它由用户自己考虑,并且不仅是视力不佳的人。合成器在其工作中使用统计参数合成,并且基于HTS等现有项目的开发,并发表科学研究。它是一种混合的深度神经网络,可与隐马尔可夫模型一起使用。这种网络的任务是基于可观测值来解决未知参数。可以认为这是最简单的贝叶斯网络。 HTS本身基于另一个项目HTK的开发。但是在这里,我们最感兴趣的是一些开发已免费发布,包括对算法和应用技术的描述。



合成器本身被定位为日常工作的工具。它可以用于诸如发声书之类的更具创造性的目的,但是当人们讲话时它仍然会更好。



Olga大约10年前开始了她的项目,当时她开始学习Linux,但在那里找不到适合自己的合成器。她使用特殊的盲文显示器自己编写了所有代码。这是一种特殊的设备,旨在以六个点盲文字符的形式显示文本信息。她还使用JAWS,这是一种屏幕阅读器,可将其历史追溯到DOS,并且是在盲人的积极参与下创建的。



现在已经进行了介绍,让我们更深入地研究语音合成器的世界。



什么是语音合成器,它包括什么?



传统上,任何合成器都由两部分组成:语言组件和语音信号生成组件。语言组件分析从屏幕阅读器接收到的文本。它的任务是将文本分解为句子,将句子分解为短语,单词和音节。最后,将构建所有单词的转录并从中创建声音映射(众所周知,这并不总是以书面形式或说出来的)。可以使用不同的研究深度来进行此分析。例如,RhVoice缺乏用于复杂操作的资源,例如定义句子或词性中的角色。但是无论如何,在解析的最后,我们得到了一组声音,语音信号生成组件必须使用预先录制的声音来组合声音。稍后我们将更详细地介绍每个组件。





演示使用合成器



奥尔加的故事



奥尔加(Olga)居住在Cheboksary,毕业于楚瓦什州立大学数学系,并担任程序员。像所有盲人一样,她在专门学校学习。最初,在下诺夫哥罗德的一所学校有6个班级,因为当时切博克萨雷(Cheboksary)没有任何地方可以接纳完全失明的儿童。但是六年后,她仍然设法返回家乡,奥尔加在切博克萨雷完成学业。在同一所学校,奥尔加(Olga)爱上了数学,后来允许她进入数学系。在某个时候,她考虑加入内河运输,但在这里,她自身能力的不确定性起了作用。是的,在数学学院的毕业生中有几位是盲人,在介绍性面试中,院长说他们的程序员比内河理工学院有更好的准备。



奥尔加(Olga)拥有她第一次在学校而不是在大学工作的计算机的第一次使用经验,在图书馆中,他们购买了配备供盲人使用的特殊计算机,并安装了JAWS程序(自1989年以来一直引领着它的屏幕阅读器)。她在那里学习了莎拉·莫利(Sarah Morley)著名的Windows 95教科书。最有可能的是,您现在会感到惊讶,因为您从未听说过如此著名的教科书是什么?答案在于其名称:“盲人和视障人士使用的Windows 95”...这些教科书与我们大家熟悉的教科书之间的主要区别在于,重点在于描述各种对象和管理它们的选项。因为对于盲人来说,“单击下拉列表并选择所需菜单项”形式的指令有些用处。他们看不到屏幕,鼠标光标等等,甚至不知道窗口和下拉列表的外观。顺便说一句,正因为如此,另一个不明显的细微差别出现了-盲人可能是所使用合成器位的人质。因此,五年前,在向Windows 8过渡的过程中,许多人都面临语音合成器对64位应用程序缺乏支持的问题,因此改用了已经实现了该支持的RhVoice。



但是,让我们回到奥尔加刚刚开始为自己探索新领域的时代。然后,语音合成器是带有Nikolay声音的Digalo程序。这是一个规范的捆绑,以至于任何上线的人都可以听到其工作结果。他的声音可以被视为“机器人”一词的同义词,因此他进入了互联网文化并被YouTube上无数的视频所使用。这可能就是为什么绝对多数人确信Digalo是Nikolai的姓氏的原因。 





Digalo Nikolay的所有荣耀



开始自己的项目



Olga进入合成器世界的旅程始于2010年左右,当时是为Festival合成器开发了NVDA(非可视桌面访问)驱动程序。 NVDA是一种免费的屏幕阅读器,可让视障人士和盲人与他们的计算机完全互动。类似的程序类别包括语音合成器和输出到盲文显示器的功能。



多亏了音乐节,奥尔加(Olga)投入了语音合成器的世界,发现不仅商业公司,而且还有任何希望有机会让计算机讲话的人。当时,已经有几种开放式语音合成器,主要由研究语音合成技术的科学家分发。



因此,奥尔加(Olga)在同一个音乐节期间,根据经验丰富的同事的作品进行了首次实验。它是由Alan Black领导的一组科学家于1995年创建的学术语音合成器。他们开发了合成方法,并根据研究结果制作了自己的合成器,最初只是证明其工作成果。随着时间的流逝,一个同等重要的项目FestVox被添加到其中,使您可以生成新的人工声音,并且最重要的是它还附带了不错的文档。那时,音乐节已经有了亚历山大的俄罗斯声音,而且演说基础还不错。



什么是语音基础:就RhVoice而言,这些是一千多个特殊句子,由说话者以清晰,无感情的发音朗读。这些句子的选择必须包含所有双音,即两个音素的所有组合。最好每次都进行多次以获得更大的可变性。根据回忆,在第一个版本中使用了大约600个短语。此外,合成器可以从这些音素中形成任何单词。在英语中,这种方法称为单位选择,而在我国,这种方法称为语音单位选择方法。是的,不是最时尚,最年轻的,但它像铁一样可靠地工作。每个句子都被输入基础并进行分析:确定声音,确定它们在音节中的位置,在单词中在句子中。各个音素被分类,它们相对于彼此的位置等等。在反向操作(即语音合成)中,对于从转录获得的每个音素,您只需从数据库中选择最合适的(读:关闭)示例。有时可以找到严格的对应关系,有时则必须满足于最相似的内容。在语言学家的世界中,这被称为理论和实践语音,并不是昨天才发明的。因此,如果不阅读有关语音的教科书,就不可能从事语音合成器。顺便说一下,莫斯科国立大学出版了特别好的教科书。在语言学家的世界中,这被称为理论和实践语音,并不是昨天才发明的。因此,如果不阅读有关语音的教科书,就不可能从事语音合成器。顺便说一下,莫斯科国立大学出版了特别好的教科书。在语言学家的世界中,这被称为理论和实践语音,并不是昨天才发明的。因此,如果不阅读有关语音的教科书,就不可能从事语音合成器。顺便说一下,莫斯科国立大学出版了特别好的教科书。



在哪里获得这些优惠?您可以写自己,但这是一项相当艰巨的任务,有两种替代方法。您可以事先接受某人的书面文字,但这可能会侵犯版权或花费个人金钱。因此,某些声音的作者使用了维基百科的文本。对于英语或俄语等大型语言,您可以在此处轻松找到必要的示例。在这种意义上,小语言不是幸运的。例如,此技巧不适用于白俄罗斯语维基百科。



语言和语音有什么区别?毕竟,七年前还没有乌克兰人或塔塔尔语播音员。它们如何出现在合成器中?



语音合成器中的声音



一切都始于对该语言的分析,该分析包括创建一个数据库,该数据库正式描述了该语言的语音系统。这样的基础已经可以由某人制造并在市场上出售(非常可观的价格)。否则,您必须自己做。为了分析每种语言,需要开发一个单独的程序,这可能需要长达一年半的时间,具体取决于语言的复杂程度。例如,意大利语在语音合成方面非常简单,而阿拉伯文和中文等语言则极其复杂。但是平均而言,一年会创建一个语言分析器。准备就绪后,便已写入声音。这已经花费了大约三个月的时间。在工作室里录制画外音和其他作品需要两到三个星期。这是由于事实演讲者一天可以讲四个小时,讲的质量和优美。然后他累了,听起来不再干净。如果您认为这是愚蠢的,那么不会-对这些记录的质量提出非常严格的要求。商业公司进行整个转换,不仅选择声音的主观美感,而且在可能的情况下,在合成器中为特定的语言使用特定的声音。



然后,根据数据库将记录分成多个块,然后使用语言解析器将这些块组合在一起。也就是说,分析这是一个名词,这是一个动词,它紧挨着它,这意味着它应该听起来像这样,并且用最接近的音素代替。因此,分析器的作用非常重要:它不仅必须考虑单词中音节的排列,还必须考虑句子和标点符号中单词的排列。所有这些都会影响发音。在某些语言中,根据同一个单词是名词还是动词,其发音可能有所不同。



但这更多地是商业产品的途径,其产品的创造者拥有进行如此深入研究的资源。独立开发人员使用更简单的选项:没有按词性进行完整分类,但是,例如,仅在独立词/介词/联合等级别上。 Olga进一步走了自己的道路,并根据教科书和语音文章撰写了语言模块。幸运的是,已经有足够的有关该主题的已发表研究。



您是否注意到大多数合成器首先具有女性声音?这不是因为作者的喜好,而是因为发展女性声音的复杂性。女性的声音自然更高,高频比低频更难处理。而且,如果您设法营造出女性的声音,那么肯定会有男性的声音。但是相反,这不是事实。





就奥尔加而言,这是对这个话题的个人热情,甚至是必要的。商业发展如何?他们如何决定添加哪种语言和不添加哪种语言?一切的答案就是金钱。第一个显而易见的选择是分析新声音的潜在销售市场。简而言之:该国的经济水平如何,其居民是否有钱购买其产品。第二个激励措施已经更加有趣了。政府或其他组织希望为特定语言创建语音合成。因此,语音合成器是为非常小的语言制作的,仅仅是因为有人照顾了这一点并为开发分配了资金。并且,例如,在斯堪的纳维亚国家,法律规定盲人和视障人士必须可以访问所有书面文件。因此,任何出版的报纸都应该有自己的音频版本。



并了解价格的顺序:从私人公司开发新声音的成本大约为10到4万欧元,具体取决于语言的复杂程度。分析仪模块的开发成本要高出许多倍。关于RhVoice,Olga有原则的立场-她的项目将永远是免费的。那么播音员的钱从哪里来?在最初阶段,有志愿者提供帮助。他们有自己的工作室,并愿意为播音员付费,所以奥尔加只能发送一份配音提案列表。这就是RhVoice中出现几种新语言的方式。然后他们开始向她提出具体要求。



但是进一步发展的命运取决于在免费访问中找到必要的资源。例如,以前没有针对乌克兰语言的开放式压力词典,并且在不知道如何放置压力的情况下构建合成器是不可能的。现在已经添加了,但是已经完成了很多工作。就材料的可获得性而言,俄语更为幸运。创作者将佳能语音“ Alexander”公开发布,这使奥尔加得以开始她的第一个创建语音合成器的实验。



如果您根本不了解该语言,该如何创建合成器?按照惯例,您会说俄语和英语,但是会被要求发展阿拉伯语吗?没有技术上的限制,主要是要在Internet上找到有关该语言,其结构的一些文章和材料,甚至向语言学家咨询。这可能足以开发出初始语音合成器。实际上,总的来说,开始信息的数量是标准的:音素列表,从字母表示到发音的转录规则,有关语音辅助部分的详细信息等。主要问题将是,如果没有母语人士的参与,开发人员将无法验证其工作结果。讲母语的人不仅应该给出清晰/难以理解的反馈,而且还应该解释出哪里出错了的所有微妙之处。就RhVoice而言,塔塔尔语已变得如此困难。语言学家为奥尔加提供了很多帮助,她与喀山盲人和视觉障碍者图书馆的代表联系,并发起了这些作品。在合成器的工作过程中,编写了另一本词典,其中列出了从俄语借来的单词的正确发音。因此,借贷听起来完全符合塔塔尔语的语言,而不是俄语。这样的词典是由专业语言学家编写的,这很好。例如,没有针对吉尔吉斯斯坦语的此类词典,并且存在许多问题领域,而解决问题的方法尚未从技术上简单地找到。在合成器的工作过程中,编写了另一本词典,其中列出了从俄语借来的单词的正确发音。这样借贷听起来就完全符合the语的规则,而不是俄语。这样的词典是由专业语言学家编写的,这很好。例如,没有针对吉尔吉斯斯坦语的此类词典,并且存在许多问题领域,而解决问题的方法尚未从技术上简单地找到。在合成器的工作过程中,甚至编译了一个单独的词典,以正确读出从俄语借来的单词。因此,借贷听起来完全符合塔塔尔语的语言,而不是俄语。这样的词典是由专业语言学家编写的,这很好。例如,没有针对吉尔吉斯斯坦语的此类词典,并且存在许多问题领域,而解决问题的方法尚未从技术上简单地找到。



一个单独的问题是压力放置。在某些语言中,压力的位置是可以预测的,但是在相同的俄语和乌克兰语中,您不能没有字典。此外,还有基于这些词典的压力预测算法。但是,如果没有基本词汇,就不可能做到这一点。



将来会怎样?相反,用户最常要求什么新功能或对现有功能的改进?这里无可争议的领导者是添加一种或另一种语言的请求。正在开发新语言,但是如上所述,这不是很快,并且需要外部专家的帮助。而且,许多人要求提高声音质量,以使其更接近自然。但是,使用Olga可用的工具,此处将不会有重大改进。诚然,从一个版本到另一个版本,声音仍然会发生变化。



现在,奥尔加(Olga)希望以类似C的低级语言编写的神经网络现成的组件能够出现,它们可以在移动设备上提供足够的性能。而且,如果它在手机上启动,那么它将在其他平台上运行。这样的项目已经在开发中,然后她将能够重新制作自己的合成器。要解决的另一个重要问题是,没有一种简单直接的方法可以在RhVoice中添加您自己的语言和语音。有些人愿意为此工作付出代价,但问题是经典的:有很多要求,奥尔加是一个要求,就像在大多数有趣的项目中一样,代码库是一个神奇的森林,对于除创建者以外的其他人来说,这是致命的任务。 ...在大多数此类项目中,开发人员会为希望的人提供一套工具和文档,通过了解语言的语音并掌握其余知识,您可以创建自己的语言模块。到目前为止,奥尔加一无所有。但是有计划这样做。



最后,我想说的是,由于一位热心人,多年来所做的非常出色。谢谢你,奥尔加



如果您还想感谢Olga的无私工作,甚至参与RhVoice的开发,以您的知识,最佳实践或赞助来帮助该项目,那么您可以通过她的github联系Olga来做到这一点





All Articles