How to insert a new word into imdict-chinese-analyzer(智能中文分词模块)

这不是一篇讲述Vekou的文章,但和Vekou的关系相当紧密。

在上一篇文章中提到还有一个很重要的问题没有说清楚,其实就是关于Vekou底层所涉及到的中文分词器imdict-chinese-analyzer,如果理解了Vekou 高级使用中谈到Vekou内部是如何工作的以后,就知道如果Vekou遇到一个从来未见过的新词,就算向zhy.dict添加一个这个新词,如果在分词阶段没有把这个词正确划分,Vekou就不能像一个词一样把它读出啦,听上去依然像一个字一个字地读。所以,要让Vekou正确识别一个词,有两个条件必须具备:

  1. 必须让中文分词器划分出这个词,即分词器字典中存在这个词
  2. Vekou中的粤语发音字典中(zhy.dict)也要存在这个词

Continue reading How to insert a new word into imdict-chinese-analyzer(智能中文分词模块)

Vekou 高级使用

没有实现time scaling与pitch scaling是一个遗憾,特别是pitch scaling比较难实现,如果学了数字信号处理那应该是很easy的事,听说是要用到DFT的,准确来说是频域上移频,我借了几本书回来,等我刨完那些书以后在写应该就没问题了。time scaling主要是现在没时间写,原理是在音频流中插帧,在原本的两个帧之间插入一个左右帧的平均帧,递归插,需要延长多少时间就插多少,这个功能我一有时间就一定去实现。

怎么说,没有了这两个功能语音合成就好像成了鸡肋,当然最主要的还是如何处理初始音频流,使它的发音尽量接近人类的声音。

本篇文章会从Vekou的结构说起,到基本的配置,到你应该如何自定义一个音频流处理器,统统都会说到的。

Continue reading Vekou 高级使用

Vekou,粤语的语音合成

至于为什么叫Vekou,我也不知道,唯一想了一分钟多的是用什么字母开头,i是苹果,z和m、w都是微软,k是相机和胶卷,d像狗,所以还是v比较有型一点,然后随手就把后面几个可以连在一起发音的字母敲出来了。Vekou读作[‘vekau],项目进行了一段时间以后才突然想起需要一个比较像样的名,一开始建eclipse项目名用的还是speech synthesis。

Vekou目前虽然发音质量不是相当好,但基本上还可以工作了。你可以给一个String让它发音,也可以给一个txt文档让它发音,当然你也可以让程序给你生成一个语音文件。0.0.4版的功能详细的功能说明如下:

  1. String发音
  2. txt文档文件发音,txt文档编码自动检测
  3. 语音文件生成
  4. 粤语口语转换发音
  5. time scaling(未实现)
  6. pitch scaling(未实现)
  7. 繁简支持
  8. 语音库自定义
  9. 词典自定义
  10. 口语字典自定义

Continue reading Vekou,粤语的语音合成