【发布时间】:2011-12-23 16:40:40
【问题描述】:
对于代码大小比语音质量更重要的 PIC 和/或 ARM 嵌入式系统,是否有任何易于使用的免费或廉价语音合成库?如今,1 兆封装似乎被认为是“紧凑型”,但很多微控制器都比这小。早在 1980 年代,Apple 聘请了一家承包商来生产 Macintalk,它以 26K 封装提供质量合理的语音,运行在 7.16MHz 68000 上,一个名为 SAM 的程序可以产生不太好的语音,但仍然可以使用,使用 16K 封装,在 1MHz 6502 上运行。SpeakJet 在某种类型的 PIC 上运行语音合成算法。
我可能不会特别需要产生语音,但希望能够说出由许多预设单词组成的信息。显然,可以简单地预先记录所有消息,但使用例如词汇表。 100 个单词,我认为存储 16K 的代码加上可能 1K 的语音字符串会比存储 100 个单词的音频更紧凑。
或者,如果我想存储 100 个单词的音频,那么生成一组自然流动的单词的最佳方法是什么?在老式语音合成器上,任何给定的单词都可以用三种方式说出:中性屈折、下降屈折(好像后面跟着一个句号)或上升屈折(后面跟一个问号)。带有中性变形的单词可以按任何顺序拼接在一起,听起来不错。不过,我发现的 text-to-wave 工具似乎喜欢添加更精细的变形细节,如果单词被分割并重新排序,这听起来“关闭”。是否有任何工具设计用于产生可以很好地连接和拼接的波?如果我确实使用了这样的工具,那么哪种音频格式最适合存储波形,以便在小型微控制器上进行高效解码?
【问题讨论】:
-
This PDF 比较了 flite 和 eSpeak - eSpeak 似乎在 500kB 左右,但您实际上并没有提及您需要什么大小限制。您提到的 Mac 和 SAM 的东西似乎是由 SofVoice Inc 完成的。
-
我没有意识到SAM和MacinTalk是同一家公司;有趣的。我没有指定具体的尺寸限制,因为它们有点灵活,但我一直希望能有一些与 25 年前可以实现的东西相类似的东西。 ARM 可能没有 68000 的代码密度,但我认为它应该能够提供与 68000 在 1984 年实现的结果相当的结果,而不需要比 68000 更多的内存。