捷通华声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 正在读取软件包列表... 完成 正在分 ...
随机推荐
- 解析XML异常
包含库 #include <QtXml/QDomDocument> 再修改.pro文件 将 QT += core gui 后面添加 xml —> QT += core gui xml
- linux下yum安装jdk1.8(rpm包)和tomcat-8.5
Java是目前可移植性较高的语言,相当火热,tomcat运行就需要Java语言环境 ========= 完美的分割线 ========= 0.java简介 1)tomcat运行需要对应的Java环境, ...
- FreeModbus undefined reference to `pthread_create'
/********************************************************************************* * FreeModbus unde ...
- chapter02 回归模型在''美国波士顿房价预测''问题中实践
#coding=utf8 # 从sklearn.datasets导入波士顿房价数据读取器. from sklearn.datasets import load_boston # 从sklearn.mo ...
- Springboot中的连接池
pom.xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-ja ...
- [LeetCode&Python] Problem 766. Toeplitz Matrix
A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same element. Now given ...
- LG3684 [CERC2016]机棚障碍 Hangar Hurdles
题意 题目描述 你正在评估一些关于一个巨型飞机仓库的建设计划.飞机仓库的地面可以表示为n行n列的网格图,其中每个格子要么是空的,要么有障碍物.行从上到下依次被编号为1到n,列从左到右依次被编号为1到n ...
- index.do
- StreamSets 相关文章
相关streamsets 文章(不按顺序) 学习视频-百度网盘 StreamSets 设计Edge pipeline StreamSets Data Collector Edge 说明 streams ...
- Spark的word count
word count package com.spark.app import org.apache.spark.{SparkContext, SparkConf} /** * Created by ...