TTS 配置

本文档详细介绍了如何配置TTS(Text-to-Speech)系统,包括安装tts_commandline模块,修改配置文件,设置科大讯飞TTS引擎,配置环境变量,测试拨号方案,以及解决报错问题。通过这些步骤,可以实现TTS与IVR功能,并进行电话测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、安装 tts_commandline 模块

2、配置文件修改

/usr/local/freeswitch/conf/autoload_configs/tts_commandline.conf.xml 


<param name="command" 

value="wget -O temp.txt http://localhost:5555/tts/tts?word=${text}MMMM${file} ; lua tts.lua ${file} ;rm -rf temp.txt"/>

或者下面的方式也可以呢  


<param name="command" value="/usr/local/freeswitch/scripts/tts.sh ${file} ${text}"/>


脚本优化 怎么优化呢: 根据 用户传入的文字 直接获取 md5值  文件命名为 md5.wav

linux md5

http://blog.chinaunix.net/uid-20613650-id-3269470.html


3、配置文件生效

reload mod_tts_commandline

4、上传jar和lua


/usr/local/freeswitch/scripts/tts.lua 

local file = argv[1];
session:sleep(100);
session.streamFile(file);
freeswitch.consoleLog("notice", "tts play file\n");



tts.jar

上传到任意目录

conf.xml 要和tts.jar 放在同一目录



<?xml version="1.0" encoding="UTF-8"?>
<httpServer context="/tts">
        <handler>
                <handler-class>TTSHander</handler-class>
                <url-pattern>/tts</url-pattern>
        </handler>
        <handler>
                <handler-class>IVRHander</handler-class>
                <url-pattern>/ivr</url-pattern>
        </handler>
</httpServer>
~                             

配置可执行文件

/usr/local/freeswitch/scripts/tts.sh

#!/bin/bash
basepath=$(cd `dirname $0`; pwd)
#cd /usr/local/freeswitch/scripts/
cd /root/tts/x64/bin/
if [  $# = 2 ];then
./ttsdemo $1  $2
fi
cd $basepath
unset basepath


5、配置TTS 引擎  科大讯飞为例  百度也可以


其中这里的路径是 科大讯飞的TTS路径  后期改的兼容好点

/root/tts/x64/bin/

我们现在用在线版

/root/tts/Linux_voice_1.109

离线版收费   或者改用百度的离线版

6、

添加环境变量


export LD_LIBRARY_PATH=:/intelruntime:.:/root/tts/Linux_voice_1.109/libs/x86:/

这里引用了 科大讯飞的一个类库

source /etc/profile

7、测试 

在dialplan 添加这样一个拨号方案

     <extension name="tts_testcall">
        <condition field="destination_number" expression="^8888$"/>
        <action application="answer"/>

<action application="set" data="tts_engine=tts_commandline"/>

<action application="set" data="tts_voice=girl"/>
        <action application="speak" data="欢迎您使用光大银行电子银行业务,查询余额请按一,修改密码请按二。"/>
        <action application="sleep" data="5000"/>
        <action application="speak" data="等这么久都不说话,不和你玩了。拜拜。"/>
        <action application="hangup"/>
      </condition>
    </extension>


    <extension name="ivr_testcall">
        <condition field="destination_number" expression="^9999$"/>
        <action application="answer"/>
        <action application="ivr" data="welcome"/>
      </condition>
    </extension>


or


<extension name="TTS">
<condition field="destination_number" expression="^5555$">
<action application="answer"/>
<action application="set" data="tts_engine=tts_commandline"/>
<action application="set" data="tts_voice=girl"/>
<action application="speak" data="DID语音呼入功能已经支持了,您可以通过DID直接拨号呼叫集团内部任意的号码.并实现低资费的国际语音话务功能"/>
 <action application="speak" data="你好我现在在吃饭有问题先留言我看到后就会马上复您"/>
 <action application="set" data="skip_greeting=true"/>
 <action application="set" data="skip_instructions=true"/>
 <action application="export" data="voicemail_alternate_greet_id=2024561000"/>
  <action application="voicemail" data="default 101.200.216.xxx lance"/>
 <action application="hangup"/>
</condition>
 </extension>


然后登录SIP账户 拨打电话 8888 测试 TTS  9999 测试IVR

/usr/local/freeswitch/conf/autoload_configs/xml_curl.conf.xml 

<binding name="ivr dialplan">
<param name="gateway-url" value="http://101.200.216.250:5555/tts/ivr?1=1" bindings="ivr"/>
</binding>


reload mod_xml_curl 生效



报错 找不到 so 解决方案

./ttsdemo: error while loading shared libraries: libmsc.so: cannot open shar


 在 vim /etc/ld.so.conf 

添加下面一行


include /root/tts/Linux_voice_1.109/libs/x64





生效

/sbin/ldconfig -v


然后就可以找到这个动态库了

/vim /etc/ld.so.conf


include /root/tts/Linux_voice_1.109/libs/x64
<think>好的,用户询问如何在RAGFlow中配置和集成TTS功能。首先,我需要回忆RAGFlow的相关文档。根据引用[1],RAGFlow从0.11版本开始支持语音合成输出,利用了OpenAI、通义、FishAudio、讯飞等TTS服务。用户需要先确保他们使用的版本至少是0.11或更高。 接下来,配置步骤可能包括几个方面。首先,用户需要获取第三方TTS服务的API密钥,比如OpenAI的API密钥。然后,在RAGFlow的设置中启用TTS功能,并填入相应的API密钥和其他必要参数。可能还需要在配置文件中指定服务提供商,例如选择讯飞或通义。 另外,引用[2]提到RAGFlow通过Docker部署,所以用户需要检查他们的Docker配置是否正确,特别是挂载的卷是否包含TTS相关的配置文件。可能还需要在启动容器时设置环境变量来启用TTS。 用户可能还需要测试TTS功能是否正常工作,可能需要编写示例代码调用API,或者使用RAGFlow提供的接口进行测试。此外,引用[1]提到可以结合语音识别API实现端到端语音交互,这可能是一个进阶步骤,但用户当前的问题集中在TTS配置,所以需要分步骤说明。 需要确保回答结构清晰,分步骤指导用户操作,并引用相关的文档部分作为支持。同时,要提醒用户注意版本兼容性和API密钥的安全性。如果用户遇到问题,可能需要检查日志或联系支持。</think>### 如何在 RAGFlow 中配置文本到语音(TTS)功能 #### 步骤 1:选择 TTS 服务提供商 RAGFlow 支持通过第三方服务实现 TTS 功能,当前已集成的服务包括: - **OpenAI**(需 API Key) - **通义千问**(阿里云 API) - **FishAudio**(需配置访问权限) - **讯飞语音**(需申请开发者账号)[^1] #### 步骤 2:配置 API 参数 在 RAGFlow 的配置文件中添加对应服务的认证信息,以下以 OpenAI 为例: ```yaml # config/tts_config.yaml tts_provider: "openai" openai_api_key: "sk-your-api-key-here" audio_format: "mp3" # 支持 wav/mp3 speech_speed: 1.0 # 语速调节范围 0.5-2.0 ``` #### 步骤 3:启用 TTS 模块 通过 Docker 启动时挂载配置: ```bash docker run -d --name ragflow \ -p 10080:10080 \ -v /data/ragflow/config:/opt/ragflow/config \ # 挂载配置文件目录 infiniflow/ragflow:latest ``` #### 步骤 4:验证功能 通过 API 测试语音生成: ```python import requests response = requests.post( "http://localhost:10080/api/tts", json={ "text": "欢迎使用RAGFlow智能系统", "voice_model": "zh-CN-XiaoxiaoNeural" # 微软语音模型 } ) with open("output.mp3", "wb") as f: f.write(response.content) ``` #### 高级集成 若需实现端到端语音交互,可配合语音识别(ASR)API: ```python # 语音输入转文字示例 asr_response = requests.post( "http://your-asr-service/api/recognize", files={"audio": open("input.wav", "rb")} ) question = asr_response.json()["text"] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值