(原创)(译)sphinx开发手册-开始之前

2017/02/23 语音识别

官网手册译文-“Before you start”

前导

在你开始开发sphinx应用之前,你应该考虑下面几个重要的指标,它将决定你将如何实现你的应用。

算法

实现语音识别技术有几个重要的限制,比如:它不能识别一种语言的任何单词,你必须假定你能克服这些限制问题。为此,你应该反思你的应用如何才能和用户交互的更好。

尽管我们提供了几个重要的例子,但我们不能覆盖任何事情。目前这里没有语言校验,演说识别的例子,未来有可能会提供。

这本手册包含了大多数科学计算知识点,后面文档也会有提到,另外,每年都会有更新的方法来解决老的问题。

以下列举了几项语音技术的应用方向:

  • 通用听写 虽然这是不可能实现的技术,你总是需要指定一个领域来实现,例如:对话,会议,读写,语音邮件,翻译。你必须在你指定的领域里构建一个语言模型,听起来会觉得很复杂,其实很简单。举例来说,假如你指定了六万个英语单词,那和指定12万个单词的识别精度是一样的。对于其它语言,由于种类不一样,所使用的套件也不一样,但通过分句分词,也能解决,因此,你还要构建后处理系统、适配系统和用户验证系统。

  • 在嵌入式设备上语音识别 这里有两个方式,一种是在服务器上实现,一种是在设备里实现,目前前者的方式非常流行,因为这样可以非常灵活的使用强大的云计算服务来做语音识别。

  • 语言学习 这要求你必须构建一个跟踪错误发音的框架,以便产生错误发音以及对错误发音的评分,从而提高语言学习。

  • 命令控制 使用有限状态机来实现命令控制非常流行,但现在我不推荐这种做法,因为现在你可以花钱来装备更好的语音识别框架来是提高应用的交互体验。简而言之,不要再做命令控制,使用语音智能助手来代替。

  • 智能助手 这是种不只是语音识别的技术,它还包括意图识别,数据学习。

  • 语音搜索,语音分析和翻译 你必须在翻译引擎上构建一个上层框架,用以来做评分及反馈。

精度指标

如果你注意观察,你会发现每次任务运行都会有精度指标结果,它对于你的用户来说或许有影响,当然,你必须清楚短时间内提高精度是不太可能的。

例如,现在运行了一个语音广播的识别任务,它的准确度是20-25%,如果对于你的应用来说还不够,那你就必须修改你的应用,使用手动矫正或优化适配来提高精度。如果结果还不能满意,那你就应该思考下你是否必须使用语音识别,目前还有很多其它可靠的方法来实现。例如,虽然语音识别技术非常科幻和方便,但人们目前还是倾向与使用网页或邮件来沟通。

永远记住,你需要的是最有效的方式,而不是最现代化的方式。

资源

下一个需要考虑的问题是你可以使用的语音材料,以及可以做测试、优化的系统,你应该找找哪些是你可利用的。

测试集对于任何语音识别应用来说都是棘手的问题。因为它必须代表一门语言的发音以及规则。但测试集又不需要太大,你可以话费十分钟来创建一个,你可以使用你自己创建的例句来做一个。

你必须先看看你有哪些现在的资源,比如,测试集、模型等。鉴于目前人们对语音识别的热爱,我们更倾向于自己制作一个本地语言的模型,通常来说,你必须收集本地语言的语音材料,事实上,这也不是什么难事,因为你可以使用音频书籍,电影,广播来轻松完成这个声学模型。

你可以使用现成的TTS合成器来构建一个语音字典,或者你可以自己制作一个基本版本,然后使用机器学习工具来扩展它。

对于语言模型,你可以找到很多本地语言的文本,可以是书籍,网页内容等等。

技术

最后一个需要考虑的问题是你将使用哪种技术来实现。尽管sphinx提供了几乎完整的工具套件来开发语音应用,但你还是可以使用其它的语音套件来开发,你可以先考虑你是使用JAVA,还是使用C语言,又或者是sphinx支持的脚本语言来开发你的应用,下面是sphinx提供的参考意见:

  • 如果需要可移植和性能 使用pocketsphinx
  • 如果需要灵活和可管理 使用sphinx4

尽管人们经常问sphinx4和pocketphinx哪个精度更高,但这个问题确实无法解答。它们两者都提高了可接受范围的精度,再一个原因就是精度是受众多因素影响的,不只是取决于引擎。

如果语音识别引擎只是你系统的一部分,你系统还包括其他组件,例如:大词汇解码,分类框架,适配框架,后处理框架,考虑到灵活性,你应该使用sphinx4,在像red5的服务器上嵌入sphinx4是件非常简单的事情。

如果你的系统需要一个有效且合理的精度,而且是运行在嵌入式设备的话,那pocketsphinx是非常好的选择,另外不支持java等JVM虚拟机的环境下使用pocketphinx也是一非常好的选择。

下一步,你将选择一个开发平台,如果你可以选择,我们推荐使用GNU/Linux系统来开发。当然我们也能提供window和mac平台的开发环境,但我们不保证这些平台开发没有问题。因为很多类似perl、python复杂的任务都有可能在windos和mac平台出现问题。


知识共享许可协议
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。

站内搜索

    撩我备注-博客

    joinee

    目录结构