1.1 Freeswitch了解
FreeSWITCH 是一个电话的软交换解决方案,包括一个软电话和软交换机用以提供语音和聊天的产品驱动。FreeSWITCH 可以用作交换机引擎、PBX、多媒体网关以及多媒体服务器等。
FreeSWITCH 可以通过 XML、脚本实现基本的 IVR 功能,再配合 mod_unimrcp 模块与 MRCP 服务器的 TTS、ASR资源进行通信,即可实现一个简单的智能客服系统。
FreeSWITCH 架构
如下图所示,FreeSWITCH 的扩展性非常强
系统架构
系统架构如下图所示,FreeSWITCH 通过 mod_unimrcp 与 MRCP Server 进行通信。
1.2 MRCP协议(媒体资源控制协议)
媒体资源控制协议(Media Resource Control Protocol, MRCP)是一种通讯协议,用于语音服务器向客户端提供各种语音服务(如语音识别和语音合成)。
MRCP并不定义会话连接,不关心服务器与客户端是如何连接的,MRCP的消息通常是承载于其它协议之上,如RTSP,SIP等。
MRCP消息使用类似于HTTP等许多Internet协议一样的文本格式,每个消息包括三部分:首行,消息头,消息体。首行表明消息类型及返回码等信息。消息头包括了若干行内容,每一行都形如 "字段名:数值"。消息体包括了消息的详细内容,长度在消息头中指定。
类似于HTTP,MRCP使用请求(通常由客户端发起)、响应模式。响应可以简单的确认请求,或者给出关于处理的其它信息。例如,MRCP客户端向服务端请求想要发送一些音频数据以进行处理(比如说语音识别),为此,服务端可以发送一个包含端口号的响应,因为MRCP并未定义音频数据的传输,所以,必须依靠其它的协议,比如说RTP来进行。
有两个版本的MRCP协议,版本2使用SIP作为控制协议,版本1使用RTSP。
[1] RFC4463: A Media Resource Control Protocol (MRCP)
1.3 ASR NLP TTS
ASR(自动语音识别)就是将麦克风采集到的自然声音转化为文字的过程,相当于人的耳朵+大脑(一部分)。TTS技术(语音合成),是将文字转化为声音(朗读出来),类比于人类的嘴巴。大家在Siri等各种语音助手中听到的声音,都是由TTS来生成的,并不是真人在说话。TTS的技术实现方法,主要有2种:“拼接法”和“参数法”。
下图是机器识别人类的语音输入(亦即ASR)的原理和过程: