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+中的安装过程的更多相关文章

  1. linux环境中,nginx安装过程

    需求描述: 记录在linux平台,nginx安装的过程. 环境描述: 操作系统:Red Hat Enterprise Linux Server release 6.6 (Santiago) 操作内核版 ...

  2. Android中APK安装过程及原理解析

    [原文] 来自华为内部资料 应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理操作.APK是Android Package的缩写,即android安装包 ...

  3. 用 EasyBCD 在 Win7/8 中硬盘安装 Ubuntu

    写在前面: 1. 我装的是ubuntu 13.10 64位,不一样的地方是,从casper文件夹复制出来的文件不是vmlinuz,而是vmlinuz.efi,相应的,menu.lst里也要将vmlin ...

  4. WINDOWS系统下MYSQL安装过程中的注意事项

    1.首先MySQL的安装方式有两种:一种是MSI安装方式,很简单就像安装Windows软件一样.另外一种就是ZIP安装方式.这种相对而言比较麻烦.新手推荐MSI安装方式. 安装方式有以下两种: MSI ...

  5. JAVA安装过程中出现的“javac不是内部或外部指令”的解决方法

    近来重新安装了JAVA,安装过程中出现问题,网上找到解决办法,汇总发布. 解决流程: 1.确定自己的环境变量设置没问题,没有出现遗漏 : . 等情况 (具体环境变量设置百度) 2.环境变量设置后 ,d ...

  6. 2016最新cocoapods安装流程,安装过程中遇到的问题及解决方法

    现在的cocoapods与之前比较.有很多不一样的地方.自己试了一试,终于搞定.现在大概纪录一下. 1.首先查看ruby是否是最新版的. ruby是通过rvm安装的所以需要先安装rvm后查看ruby是 ...

  7. SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法

    操作步骤: 1. 在 Microsoft Windows 2003 或 Windows XP 桌面上,依次单击"开始"."运行",然后在"打开&quo ...

  8. 用友ERP-U8最新破解(再次更新版本,附安装过程中的解决办法)

    新版用友u8.70下载地址:http://ftp.shangyuchem.com/应用软件/用友ERP-U8管理软件(8.70版).rar 准备好安装环境,因为需要SQLSERVER和IIS支持,而个 ...

  9. caffe安装过程中遇到的问题以及解决方法

    1. 在安装依赖库的时候,遇到: @gxjun-Latitude-E5440:~$ sudo apt-get install libatlas-base-dev 正在读取软件包列表... 完成 正在分 ...

随机推荐

  1. 使用kbmMW#1轻松实现REST

    使用kbmMW很容易创建REST服务器. 首先,我们制作服务器应用程序(或服务......取决于您). 在这种情况下,我们将添加一个简单的Form,为我们的kbmMW组件提供GUI和位置. 在Delp ...

  2. windows server 账号克隆

    在dos命令行下隐藏用户的方法:   net user 账户 密码 /add 如果在账号后加 $ 符号 这个账户在cmd命令行下是无法看见的 首先我们设置注册表权限 cmd = > regedt ...

  3. echarts折线图柱状图的坐标轴的颜色及样式的设置

    基本用法请查看echarts官网. 一.图例legend的设置. 1.字体和颜色的设置 textStyle:{ fontSize:15, color:'#fff' } 2.样式的设置 legend: ...

  4. 腾讯云nginx配置PHP

    腾讯云nginx配置文件 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log ...

  5. 《TensorFlow实战》读书笔记(完结)

    1 TensorFlow基础 ---1.1TensorFlow概要 TensorFlow使用数据流图进行计算,一次编写,各处运行. ---1.2 TensorFlow编程模型简介 TensorFlow ...

  6. Python 第三方库 进度条模块 tqdm的使用方法

    使用方法一: tqdm tqdm(list)方法可以传入任意一种list,比如数组,同时tqdm中不仅仅可以传入list, 同时可以传入所有带len方法的可迭代对象,这里只以list对象为例: fro ...

  7. [LeetCode&Python] Problem 811. Subdomain Visit Count

    A website domain like "discuss.leetcode.com" consists of various subdomains. At the top le ...

  8. HDU 2647:Reward(拓扑排序+队列)

    Reward Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  9. day31 python学习 操作系统的介绍,

    一 背景知识 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的其他所 ...

  10. 使用rewrite 让php 实现类似asp.net 的IHttpModule 进行带参数js文件的参数获取

    asp.net 的IHttpModule 接口具有很大的作用,我们可以使用实现的模块进行全局的控制,但是在学习php 的过程中也想实现类似的功能,查找php 的文档,自己没有找到, 但是我们大家应该知 ...