FreeSWITCH 简单图形化界面59 - 拨号应用speak,使用纯CPU的kokoro-tts播放文字

FreeSWITCH 简单图形化界面59 - 拨号应用speak,使用纯CPU的kokoro-tts播放文字

  • [00、 一个fs的web配置界面预览](#00、 一个fs的web配置界面预览)
  • [01、 Web 配置界面预览](#01、 Web 配置界面预览)
  • [02、 Web界面安装参考](#02、 Web界面安装参考)
  • 1、speak应用简介
  • [2、speak 应用语法](#2、speak 应用语法)
  • 3、speak示例
    • [3.1 先部署一个TTS服务](#3.1 先部署一个TTS服务)
    • [3.2 配置 mod_tts_commandline 对接 TTS 服务](#3.2 配置 mod_tts_commandline 对接 TTS 服务)
      • [3.2.1 编写 TTS 调用脚本 `tts.sh`](#3.2.1 编写 TTS 调用脚本 tts.sh)
      • [3.2.2 配置 tts_commandline.conf](#3.2.2 配置 tts_commandline.conf)
      • [3.2.3 加载模块](#3.2.3 加载模块)
      • [3.2.4 配置拨号方案实现自动语音播报](#3.2.4 配置拨号方案实现自动语音播报)
  • 4、效果与性能查看
  • [5、补充:无需 speak 应用,直接通过呼叫规则播放 TTS 音频](#5、补充:无需 speak 应用,直接通过呼叫规则播放 TTS 音频)

00、 一个fs的web配置界面预览

如果您想通过图形化界面管理 FreeSWITCH 的场景,可直接访问以下 Web 配置界面。

01、 Web 配置界面预览

界面地址 备用地址 登录信息
http://www.fspbx.cn/ http://myfs.f3322.net:8020/ 用户名:admin密码:admin

02、 Web界面安装参考

若需自行部署 FreeSWITCH 图形化界面,包含 Docker、脚本、ISO 镜像三种安装方式,适配不同系统环境:

  1. Docker 安装:快速部署;
  2. 脚本安装:适配 Almalinux、RockyLinux、Debian、Ubuntu 、欧拉等系统,提供一键安装命令,安装后需重启初始化;
  3. ISO 镜像安装:基于 Almalinux制作的镜像,刻录到 U 盘或光盘后可自动安装,适合全新服务器部署。

1、speak应用简介

speak 是 FreeSWITCH 用于在通话通道中播放 TTS 语音的核心应用,可将文本实时转为语音播放给通话对端。

FreeSWITCH 自带常见 TTS 模块:

  • mod_flite:轻量级英文 TTS
  • mod_cepstral:商业 TTS 引擎接口
  • mod_unimrcp:对接 MRCP 协议 TTS 服务
  • mod_tts_commandline调用外部命令行/脚本实现自定义 TTS(本文重点)

2、speak 应用语法

xml 复制代码
<action application="speak" data="<engine>|<voice>|<text>|[timer_name]"/>
  • engine:TTS 引擎(如 tts_commandline
  • voice:音色名称
  • text:需要播报的文本
  • timer_name:可选定时器参数

3、speak示例

下面使用speak通过 mod_tts_commandline 对接基于 Kokoro-TTS 的 HTTP TTS 服务,实现中文语音播报。

3.1 先部署一个TTS服务

使用封装好的 tts-server Docker 镜像,快速搭建可通过 HTTP 调用的 TTS 服务。

这个是基于kokoro-tts的,可通过http下载tts后的语音,tts速度看CPU性能,我的测试的虚拟机是 CPU 核心数: 16

核,我觉得还行,要说实时肯定不是,但是20个字,1-2s内还是差不多的。

带缓存,相同文字片段,只转换一次;音色如果不存在,首次需要下载

3.1.1 拉取镜像

bash 复制代码
podman pull registry.cn-hangzhou.aliyuncs.com/pbx/tts-server:latest
# 或使用 docker
docker pull registry.cn-hangzhou.aliyuncs.com/pbx/tts-server:latest

3.1.2 启动容器

bash 复制代码
podman run -itd --name tts-server --restart always -p 5000:5000 tts-server

3.1.3 查看启动日志

bash 复制代码
podman logs -f tts-server

出现服务监听日志即启动成功。

3.1.4 TTS 服务接口测试

(1)获取可用音色的接口
复制代码
http://你的TTS容器IP:5000/voices

默认音色:zm_yunxi

(2)获取文本转语音接口
复制代码
http://你的TTS容器IP:5000/stream?voice=zm_yunxi&text=这里输入内容

访问即可直接播放或下载音频。

3.2 配置 mod_tts_commandline 对接 TTS 服务

3.2.1 编写 TTS 调用脚本 tts.sh

创建 /root/tts.sh,通过 wget 调用 HTTP TTS 接口并保存为 wav 文件:

bash 复制代码
#!/bin/bash
# $1 = 输出wav文件路径
# $2 = 待播报文本

wav_file="$1"
text="$2"

# 调用 HTTP TTS 接口并保存为音频
wget -q -O "${wav_file}" "http://210.51.10.231:5000/stream?voice=zm_yunxi&text=${text}"

赋予执行权限:

bash 复制代码
chmod +x /root/tts.sh

3.2.2 配置 tts_commandline.conf

直接修改网页配置

或者编辑 conf/autoload_configs/tts_commandline.conf

xml 复制代码
<configuration name="tts_commandline.conf" description="TextToSpeech Commandline configuration">
<settings>
<!--
变量说明:
${text}: 待合成文本(已引号处理)
${rate}: 采样率(如8000)
${voice}: 音色名称
${file}: 输出wav文件路径
-->
<param name="command" value="/root/tts.sh ${file} ${text}"/>
</settings>
</configuration>

3.2.3 加载模块

bash 复制代码
# 控制台执行
load mod_tts_commandline

3.2.4 配置拨号方案实现自动语音播报

示例:拨打 11111 自动应答并播报当前系统时间

xml 复制代码
<extension name="11111-TTS播放时间号码">
  <condition expression="^(11111)$" field="destination_number">
    <action application="answer" />
    <!-- TTS服务器有缓存,相同文字只转换一次,动态时间测试 -->
    <action application="set" data="time=${system date +'%Y年%m月%d日%H时%M分'}" />
    <action application="set" data="tts_engine=tts_commandline" />
    <action application="set" data="tts_voice=whatever" />
    <action application="speak" data="现在为您播报时间,现在时间是${time},请安排好您的工作,再见"/>
    <action application="hangup"/>
  </condition>
</extension>

重新加载配置:

bash 复制代码
reloadxml

4、效果与性能查看

拨打 11111 即可听到完整语音播报.速度取决于cpu的性能。

这里是一个视频

20260329_173945

查看 TTS 服务转换日志:

bash 复制代码
podman logs -f tts-server

可看到字数统计、合成耗时

5、补充:无需 speak 应用,直接通过呼叫规则播放 TTS 音频

除了使用 speak 应用调用 TTS 引擎,也可直接通过 system 调用 TTS 服务生成音频文件,再用 playback 播放,无需依赖 speak 应用,呼叫规则示例如下:

xml 复制代码
<extension name="21111-TTS播放古诗">
  <condition expression="^(21111)$" field="destination_number">
    <action application="answer" />
    <action application="set" data="output=/tmp/output.wav" />
    
    <action application="set" data="text=5个字,窗前明月光" />
    <action application="system" data="wget -O ${output} http://210.51.10.231:5000/stream?text=${text}" />
    <action application="playback" data="/tmp/output.wav" />
    
    <action application="set" data="text=10个字,疑是地上霜,举头望明月" />
    <action application="system" data="wget -O ${output} http://210.51.10.231:5000/stream?text=${text}" />
    <action application="playback" data="/tmp/output.wav" />
    
    <action application="set" data="text=5个字,低头思故乡" />
    <action application="system" data="wget -O ${output} http://210.51.10.231:5000/stream?text=${text}" />
    <action application="playback" data="/tmp/output.wav" />
    
    <action application="set" data="text=声明称,此次行动使用巡航导弹和无人机,并称行动已实现既定目标。声明还表示,此次行动与伊朗及黎巴嫩真主党方面的军事行动同步进行,并强调未来将继续实施军事行动,直至对方停止相关军事行动。" />
    <action application="system" data="wget -O ${output} http://210.51.10.231:5000/stream?text=${text}" />
    <action application="playback" data="/tmp/output.wav" />
    
    <action application="hangup"/>
  </condition>
</extension>

说明:该方式直接通过 wget 调用 TTS 服务生成音频文件(保存至 /tmp/output.wav),再通过playback 播放,无需配置 mod_tts_commandline 模块,适用于简单场景的 TTS 播放需求。

bash 复制代码
reloadxml

祝君好运!

💗 2026年

🐂 祝君成功,好运连连,牛气冲天

(注:文档部分内容由本人整理并测试,格式由 AI 生成)

相关推荐
带娃的IT创业者4 天前
WeClaw-TTS 语音合成实战:pyttsx3 本地引擎与 Edge-TTS 云服务的混合架构.md
前端·tts·ai智能体·openclaw·weclaw
带娃的IT创业者8 天前
TTS静默之谜:pyttsx3 全局缓存陷阱与qasync环境四轮诊断实战
缓存·tts·异步编程·pyttsx3·qasync·windows sapi5·com 线程模型
贾宝玉的玉宝贾15 天前
FreeSWITCH 简单图形化界面58 - 拨号应用userspy模块监听呼叫使用
voip·freeswitch·sip·ippbx·freeswitch界面
莽夫搞战术18 天前
【MOSS-TTS】一款适用于实际应用的TTS基础模型
语音合成·tts·moss
贾宝玉的玉宝贾1 个月前
FreeSWITCH 简单图形化界面55 - 拨号应用tansfer盲转/拨号计划跳转使用
voip·freeswitch·sip·ippbx·图形化界面·freeswitch图形化界面
贾宝玉的玉宝贾1 个月前
FreeSWITCH 简单图形化界面54 - 拨号应用att_xfer协商转移使用
voip·freeswitch·ippbx·pbx·sip通信
wMoqi2 个月前
freeswitch接入E1/T1数据中继语音网关配置
freeswitch·数字中继网关
云蝠呼叫大模型联络中心2 个月前
深度解析|云蝠智能大模型呼叫系统架构:神鹤双擎 + 暴风引擎,低延迟高并发解锁呼叫中心降本增效新路径
系统架构·tts·asr·外呼系统·ai外呼·大模型呼叫·voiceagent
J ..2 个月前
MeloTTS 生成 RKNN 模型
rk3588·tts·melo