当前位置: 首页 > 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

文章写的极好

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MIT APP Inventor服务器版编译
  • 关于平扫和增强磁共振的思考
  • Gradle安装保姆级教程
  • ProxySQL 读写分离配置
  • C#笔记之三 委托
  • Linux包管理工具yum
  • 【前端储存】之localStrage、sessionStrage和Vuex
  • RabbitMQ消息的重复消费问题如何
  • ARM32开发——(十四)GD32F4_DMA功能查询
  • 分布式设计原理——CAP原则
  • 【C#】【EXCEL】Bumblebee/Classes/ExColumn.cs
  • 【CF】1422D-Returning Home 题解
  • SpringBoot实战:Spring Boot项目使用SM4国密加密算法
  • 【Qt】多元素控件QTreeWidget
  • 【ShuQiHere】用类来实现LSTM:让你的模型拥有更强的记忆力
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • extjs4学习之配置
  • IndexedDB
  • Javascript基础之Array数组API
  • JAVA多线程机制解析-volatilesynchronized
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • jdbc就是这么简单
  • Next.js之基础概念(二)
  • Redis在Web项目中的应用与实践
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 基于遗传算法的优化问题求解
  • 理解在java “”i=i++;”所发生的事情
  • 码农张的Bug人生 - 初来乍到
  • 前端面试之CSS3新特性
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 我建了一个叫Hello World的项目
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 阿里云移动端播放器高级功能介绍
  • ​​​​​​​​​​​​​​Γ函数
  • ​iOS安全加固方法及实现
  • (20)docke容器
  • (6)STL算法之转换
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (四)汇编语言——简单程序
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转)为C# Windows服务添加安装程序
  • ******之网络***——物理***
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .NET C# 配置 Options
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .net 获取url的方法
  • .NET 直连SAP HANA数据库
  • .NET/C#⾯试题汇总系列:⾯向对象