cubieboard 发表于 2014-7-30 15:34:09

让CubieBoard说话

本文介绍flite(festival-lite)在Cubieboard上的应用。flite是一个由CMU开发的小型、快速、实时的语音合成引擎,非常适合用于嵌入式系统。为了大家更快地了解和使用flite,我们在Debian/Ubuntu Linuxfor 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 <text string>\n");
[*]      exit(-1);
[*]    }
[*]
[*]    flite_init();
[*]
[*]    v = register_cmu_us_kal();
[*]
[*]    flite_text_to_speech(argv,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更加人性化!


原文作者:soloforce
原文链接:http://forum.cubietech.com/forum.php?mod=viewthread&tid=441&extra=page%3D2

页: [1]
查看完整版本: 让CubieBoard说话