捷通华声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 正在读取软件包列表... 完成 正在分 ...
随机推荐
- 入门级:理解FAT32文件系统(转载翻译)
FAT(File Allocation Table ) 这个网页的目的是帮助你理解怎么样在微软FAT32文件系统下取得数据,处理的硬盘的大小通常在500M到几百G之间.FAT是一个相对简单和纯净的文件 ...
- 高并发中nginx较优的配置
一.这里的优化主要是指对nginx的配置优化,一般来说nginx配置文件中对优化比较有作用的主要有以下几项: 1.nginx进程数,建议按照cpu数目来指定,一般跟cpu核数相同或为它的倍数. wor ...
- [LeetCode&Python] Problem 872. Leaf-Similar Trees
Consider all the leaves of a binary tree. From left to right order, the values of those leaves form ...
- 20155328 2016-2017-2 《Java程序设计》第5周学习总结
教材学习内容总结 程序设计本身的错误,建议使用Exception或其子类实例来表现. Java中所有错误都会被打包成对象. 如果父类异常对象在子类异常对象前被捕捉,则catch子类异常对象的区块将永远 ...
- 《DSP using MATLAB》Problem 3.6
逆DTFT定义如下: 需要求积分,
- hdu 1203 dp(关于概率的```背包?)
题意:一个人手里有一笔钱 n ,有 m 所大学,分别知道这些大学的投简历花费和被录取概率,因为钱数有限,只能投一部分学校,问被录取的概率最大有多大. 这题除去计算概率以外就是一个 0 1 背包问题,所 ...
- C# 中的应用配置
配置功能是软件必要的功能,下面介绍以下 Glacier 内置的配置框架,Glacier 支持三种方式的配置: appSettings 配置 嵌入的 HOCON 配置 独立的 HOCON 配置 优先级: ...
- DOS批处理 - 函数教程
DOS Batch - Function Tutorial What it is, why it`s important and how to write your own. Description: ...
- 使用gitblit搭建一个简单的局域网服务器
使用gitblit搭建一个简单的局域网服务器 1.使用背景 现在很多使用github管理代码,但是github需要互联网的支持,而且私有的git库需要收费.有一些项目的代码不能外泄,所以,搭建一个局域 ...
- 实现JMS规范的ActiveMQ
ActiveMQ是Apache软件基金会的开源产品,支持AMQP协议.MQTT协议(和XMPP协议作用类似).Openwire协议和Stomp协议等多种消息协议.并且ActiveMQ完整支持JMS A ...