捷通华声TTS在Aster+中的安装过程
1)挂载TTS光碟
2)安装如下5个rpm软件包
[asterisk@TTS78:/mnt]$ls *.rpm
jTTS-5.0.1.0-3.i386.rpm VocLib_XiaoKun1-5.0.1.0-3.i386.rpm VocLib_XiaoKun3-5.0.1.0-3.i386.rpm
VocLib_XiaoKun0-5.0.1.0-3.i386.rpm VocLib_XiaoKun2-5.0.1.0-3.i386.rpm VocLib_XiaoKun4-5.0.1.0-3.i386.rpm
[asterisk@TTS78:/mnt]$
3) 修改如下文件,生成Asterisk可以播报的语音编码格式——pcm编码,8kHZ,单声道,16位。然后这行make生成转换命令。
修改
/opt/SinoVoice/jTTS-5.0.1.0/Example/test/PlayToFile.cpp 第213行
改成
err = jTTS_PlayToFile(szText, szToFile, , NULL, 0, NULL, 0);
这样,才成生成asterisk要求参数的wav文件
注意:改完后,要用make命令,生成PlayToFile.exe 等可执行文件,这个非常重要,一定不能少!
4)注意,如果是你没有usb key ,那么到这里其实已经安装完成了。至少到这里后,root账号就可以用这个了。如果你想做的更好,可以修改下环境变量,在/etc/profile中加入到PATH
JTTS_ROOT=/opt/SinoVoice/jTTS-5.0.1.0
export JTTS_ROOT
LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
PATH=$PATH:/opt/SinoVoice/jTTS-5.0.1.0/bin
export PATH
5)剩下的就是用如下命令测试了
[root@TTS78:/tmp]$more wjj.txt
吴俊杰,你好不好啊!
[asterisk@TTS78:/tmp]$
[asterisk@TTS78:/tmp]$/opt/SinoVoice/jTTS-5.0.1.0/Example/test/PlayToFile.exe xiaokun 65001 wjj.txt wjj.wav
jTTS_Init successful .
Voice Count : 1
jTTS_SetParam voice ID successful .
jTTS_SetParam set code page successful .
jTTS_SetParam set audio background successful .
InitCostArray cost.res load finish !
jTTS_PlayToFile successful .
jTTS_End successful . err = 0
[root@TTS78:/tmp]$
发现成功!
6)但是,当你用非root用户,例如Aster+中的asterisk用户执行的时候,就会出现很多问题。
问题1:发现没有权限写gmon.out
[root@TTS78:/tmp]$su - asterisk
[asterisk@TTS78:~]$cd /tmp
[asterisk@TTS78:/tmp]$ls
gmon.out IPPBX_Tmp_Upload Runtime wjj.txt wjj.wav
[asterisk@TTS78:/tmp]$
因为此文件在/tmp/是由root生成的,所以换成asterisk后就没有权限了。解决方法,先删掉此文件。
问题2:发现日志文件没有权限写了,道理同上
[root@TTS78:/opt/SinoVoice/jTTS-5.0.1.0/bin]$ll -h jtts.log
-rwxrwxrwx 1 root root 854 Nov 20 14:23 jtts.log
[root@TTS78:/opt/SinoVoice/jTTS-5.0.1.0/bin]$
解决方法,需要给jtts.log 777 权限,或者在配置文件中直接关闭此文件
问题3:如果是正式版,有usb key的时候,发现asterisk用户无法生成tts,原来是usb设备权限。需要:
chmod -R 777 /dev/bus/usb
而且要将此条命令加到rc.local中。
7)详细错误请看日志
[root@TTS78:/opt/SinoVoice/jTTS-5.0.1.0/bin]$tailf jtts.log
{2013-11-20 13:59:27|2507|-1208411936}ERROR:GetData: {84316E85-143E-4410-B00B-9DF681684C6C} license error, LicenseType: 1
{2013-11-20 14:01:37|2610|-1208530720}ERROR:GetData: {84316E85-143E-4410-B00B-9DF681684C6C} license error, LicenseType: 1
============后续问题:
1)以上是在shell中执行tts命令生成wav文件,无论用asterisk还是root都已经没有问题了,但是,如果实在 php网页中用system()脚本函数生成,就出现问题了。
所以你,需要在 /opt/php/etc/php-fpm.conf 中加上如下环境变量。因为php-fpm运行的时候,不像 shell 用户asterisk 有环境变量。
env[JTTS_ROOT] = /opt/SinoVoice/jTTS-5.0.1.0
env[LD_LIBRARY_PATH] = /opt/SinoVoice/jTTS-5.0.1.0/bin
经过上面的修改,发现非常成功,如下:
[root@TTS78:/tmp]$
[root@TTS78:/tmp]$more /var/www/html/tts.php
<?php
$str = shell_exec(". /etc/profile;/opt/SinoVoice/jTTS-5.0.1.0/Example/test/PlayToFile.exe xiaokun 65001 /tmp/wjj.txt /tmp/wjj2.wav 2>&1");
echo $str;
?>
[root@TTS78:/tmp]$
[root@TTS78:/tmp]$wget http://localhost/tts.php
--2013-11-20 15:32:18-- http://localhost/tts.php
Resolving localhost... 127.0.0.1
Connecting to localhost|127.0.0.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `tts.php'
[ <=> ] 261 --.-K/s in 0s
2013-11-20 15:32:18 (40.2 MB/s) - `tts.php' saved [261]
[root@TTS78:/tmp]$
[root@TTS78:/tmp]$ls
IPPBX_Tmp_Upload Runtime tts.php wjj2.wav wjj.txt
[root@TTS78:/tmp]$
[root@TTS78:/tmp]$more tts.php
jTTS_Init successful .
Voice Count : 1
jTTS_SetParam voice ID successful .
jTTS_SetParam set code page successful .
jTTS_SetParam set audio background successful .
InitCostArray cost.res load finish !
jTTS_PlayToFile successful .
jTTS_End successful . err = 0
[root@TTS78:/tmp]$
捷通华声TTS在Aster+中的安装过程的更多相关文章
- linux环境中,nginx安装过程
需求描述: 记录在linux平台,nginx安装的过程. 环境描述: 操作系统:Red Hat Enterprise Linux Server release 6.6 (Santiago) 操作内核版 ...
- Android中APK安装过程及原理解析
[原文] 来自华为内部资料 应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理操作.APK是Android Package的缩写,即android安装包 ...
- 用 EasyBCD 在 Win7/8 中硬盘安装 Ubuntu
写在前面: 1. 我装的是ubuntu 13.10 64位,不一样的地方是,从casper文件夹复制出来的文件不是vmlinuz,而是vmlinuz.efi,相应的,menu.lst里也要将vmlin ...
- WINDOWS系统下MYSQL安装过程中的注意事项
1.首先MySQL的安装方式有两种:一种是MSI安装方式,很简单就像安装Windows软件一样.另外一种就是ZIP安装方式.这种相对而言比较麻烦.新手推荐MSI安装方式. 安装方式有以下两种: MSI ...
- JAVA安装过程中出现的“javac不是内部或外部指令”的解决方法
近来重新安装了JAVA,安装过程中出现问题,网上找到解决办法,汇总发布. 解决流程: 1.确定自己的环境变量设置没问题,没有出现遗漏 : . 等情况 (具体环境变量设置百度) 2.环境变量设置后 ,d ...
- 2016最新cocoapods安装流程,安装过程中遇到的问题及解决方法
现在的cocoapods与之前比较.有很多不一样的地方.自己试了一试,终于搞定.现在大概纪录一下. 1.首先查看ruby是否是最新版的. ruby是通过rvm安装的所以需要先安装rvm后查看ruby是 ...
- SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法
操作步骤: 1. 在 Microsoft Windows 2003 或 Windows XP 桌面上,依次单击"开始"."运行",然后在"打开&quo ...
- 用友ERP-U8最新破解(再次更新版本,附安装过程中的解决办法)
新版用友u8.70下载地址:http://ftp.shangyuchem.com/应用软件/用友ERP-U8管理软件(8.70版).rar 准备好安装环境,因为需要SQLSERVER和IIS支持,而个 ...
- caffe安装过程中遇到的问题以及解决方法
1. 在安装依赖库的时候,遇到: @gxjun-Latitude-E5440:~$ sudo apt-get install libatlas-base-dev 正在读取软件包列表... 完成 正在分 ...
随机推荐
- web.xml的分析
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.1" ...
- 仿sql注入 sql
<?phpclass sqlsafe { //(and|or)\\b 表示以and和or结尾的单词如:aand,band,都可以匹配//如果匹配and或or则使用 \\b(and|or)\\b来 ...
- Android Gradle 理解
/********************************************************************************* * Android Gradle ...
- STM32 RTC时钟的配置
1) 使能电源时钟和备份区域时钟. RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); //使能电源时钟和 ...
- POJ 2312:Battle City(BFS)
Battle City Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9885 Accepted: 3285 Descr ...
- js模板引擎---jtemplates使用
昨天记录了如何使用腾讯的模板引擎,今天记录一下jquery的模板引擎jtemplates.官网:http://jtemplates.tpython.com/ 编写模板:需要在页面引入jquery和jt ...
- eclipse 配置jdk和maven
准备工作:确保已安装好jdk和maven,并完全配置环境.若是没有请参考前两篇博客: jdk: http://www.cnblogs.com/qinbb/p/6861851.html maven ...
- POJ 3254 Corn Fields状态压缩DP
下面有别人的题解报告,并且不止这一个状态压缩题的哦···· http://blog.csdn.net/accry/article/details/6607703 下面是我的代码,代码很挫,绝对有很大的 ...
- 《DSP using MATLAB》Problem 4.11
代码: %% ---------------------------------------------------------------------------- %% Output Info a ...
- test20180830
所有试题限制均为128MB,1Sec 总分100(•́へ•́╬). 试题一 A题 问题描述: Bob 有 n 个士兵,他们排成一列按照从左到右编号为 1 到 n,每个士兵都有自己的 IQ 值,Bob ...