当前位置: 首页 > news >正文

TTS 文本 vs SSML

给个例子:

MRCP/2.0 246 SPEAK 1
Channel-Identifier: b227c392d70b478e@speechsynth
Content-Type: text/plain
Voice-Name: xx
Content-Length: 11

How are you

其中 Content-Type 是文本

那么 FreeSWITCH 能不能让 Content-Type 变成 ssxml 呢?

官方文档说可以,就是这一句:

mod_unimrcp supports plain text and Speech Synthesis Markup Language (SSML). TTS can be sent using either speak or playback (if prefixed with say:unimrcp:[optional voice]:<TTS text>).

我没试过(目前没有环境),但估计要这样配置:


  <profile name="my-mrcp2" version="2">
    <!--param name="client-ext-ip" value="auto"-->
    <param name="client-ip" value="auto"/>
    <param name="client-port" value="5090"/>
    <param name="server-ip" value="10.5.5.152"/>
    <param name="server-port" value="5060"/>
    <!--param name="force-destination" value="1"/-->
    <param name="sip-transport" value="udp"/>
    <!--param name="ua-name" value="FreeSWITCH"/-->
    <!--param name="sdp-origin" value="FreeSWITCH"/-->
    <!--param name="rtp-ext-ip" value="auto"/-->
    <param name="rtp-ip" value="auto"/>
    <param name="rtp-port-min" value="4000"/>
    <param name="rtp-port-max" value="5000"/>
    <!-- enable/disable rtcp support -->
    <param name="rtcp" value="1"/>
    <!-- rtcp bye policies (rtcp must be enabled first)
             0 - disable rtcp bye
             1 - send rtcp bye at the end of session
             2 - send rtcp bye also at the end of each talkspurt (input)
    -->
    <param name="rtcp-bye" value="2"/>
    <!-- rtcp transmission interval in msec (set 0 to disable) -->
    <param name="rtcp-tx-interval" value="5000"/>
    <!-- period (timeout) to check for new rtcp messages in msec (set 0 to disable) -->
    <param name="rtcp-rx-resolution" value="1000"/>
    <!--param name="playout-delay" value="50"/-->
    <!--param name="max-playout-delay" value="200"/-->
    <!--param name="ptime" value="20"/-->
    <param name="codecs" value="PCMU PCMA L16/96/8000"/>


    <param name="ssml-mime-type" value="application/ssml+xml"/>


    <!-- Add any default MRCP params for SPEAK requests here -->
    <synthparams>
    </synthparams>

    <!-- Add any default MRCP params for RECOGNIZE requests here -->
    <recogparams>
      <!--param name="start-input-timers" value="false"/-->
    </recogparams>
  </profile>

其实就是多了个 ssml-mime-type 参数

有机会的可以试试下面这段 lua 代码:

session:set_tts_parms("unimrcp", "voice");
session:speak("<?xml >Hello, <emphasis level='strong'>John</emphasis> how are you?</>");
 

其中, Hello, John (重音),  how are you?

支持更多的变化

关于 ssml 的资料可以参考这里:

https://www.w3.org/TR/speech-synthesis/

华裔居多

关于 mrcpv2 asr 的协议细节可参考这里:

https://cloud.tencent.com/developer/article/2397548

文章写的极好


http://www.mrgr.cn/news/5077.html

相关文章:

  • CR-NeRF 代码eval.py解析
  • 弹射无人机和筒射无人机技术区别详解
  • 后端给前端传递数据形式:广播 单播以及组播
  • EDKII之安全启动详细介绍
  • uniapp中switch和select组件阻止chane事件冒泡的方法
  • 科研绘图系列:Python语言时间趋势图
  • vue使用v-html保留原内容的缩进和换行
  • 预约咨询小程序搭建开发,uniapp前端,PHP语言开发
  • rabbitMQ安装与简单demo
  • EmguCV学习笔记 VB.Net 第6章 形状操作
  • Scratch编程环境:探索暗模式与可访问性选项的创新之路
  • html a标签打电话,发短信等。
  • vue 中 dist文件夹静态是什么意思(distribution)
  • STM中的I2C
  • 物联网设备字符串转串口指令-SAAS本地化及未来之窗行业应用跨平台架构
  • 【数据结构】堆排序
  • 如何优化企业网站的索引情况?
  • 常用API:object
  • Linux入门——09 共享内存
  • 计算机网络——TCP协议与UDP协议详解(下)