|
本帖最后由 soloforce 于 2013-5-15 15:09 编辑
本文介绍flite(festival-lite)在Cubieboard上的应用。flite是一个由CMU开发的小型、快速、实时的语音合成引擎,非常适合用于嵌入式系统。为了大家更快地了解和使用flite,我们在Debian/Ubuntu Linux for Cubieboard上构建一个简单的语音报时系统。
首先,安装软件
$ sudo apt-get install flite1-dev
然后编写 flite 代码,这段代码能从命令行输入的字符串实时合成语音
- /* flite_text.c */
- #include "flite/flite.h"
- extern cst_voice * register_cmu_us_kal();
- int main(int argc, char **argv)
- {
- cst_voice *v;
- if (argc != 2)
- {
- fprintf(stderr,"usage: argv[0] <text string>\n");
- exit(-1);
- }
- flite_init();
- v = register_cmu_us_kal();
- flite_text_to_speech(argv[1],v,"play");
- return 0;
- }
复制代码 编译并测试之
- $ gcc -Wall -g -o flite_text flite_text.c -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex -lflite -lm
- $ ./flite_text "Hello world!"
复制代码 这时如果声音配置正确的话应该能听到音箱里发出怪怪的合成声。
编写时间程序 show_time.sh-
- #!/bin/bash
- # show_time.sh
- time=$(date | awk '{ print $4 }' | awk -F: '{print $1":"$2}')
- echo $time
复制代码 现在再测试语音报时
$ ./flite_text "$(show_time.sh)"
这仅仅是一个简单的示例程序,您可以发挥想象力,把flite应用在您需要的地方,让CubieBoard更加人性化! |
|