前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mod_unimrcp从FreeSWITCH代码树中删除

mod_unimrcp从FreeSWITCH代码树中删除

作者头像
Seven Du
发布2022-12-12 15:24:14
2.8K0
发布2022-12-12 15:24:14
举报

FreeSWITCH从代码树中删除了mod_unimrcp(https://github.com/signalwire/freeswitch/commit/3c7e8ff989355bf518eabaeea83036585e4782b7)。

这其实是一个“蓄谋”已久的操作,不要着急,听我慢慢讲。

MRCP的全称是Media Resource Control Protocol,即媒体控制协议。现在广泛用在语音合成、语音识别等领域,大多数做人工智能(语音)的厂商现在也都支持该协议。UniMRCP(https://www.unimrcp.org/)是一个开源的实现。FreeSWITCH中有一个mod_unimrcp模块就是使用了这个库和开源的协议。

为什么移除呢?简单回答,就是为了更好。

那为什么说“蓄谋”已久呢?因为被一些事情耽搁了。

UniMRCP底层使用了APR(Apache Portabl Runtime)(https://apr.apache.org/)库,而FreeSWITCH底层也使用了APR库,所以,在FreeSWITCH中,他们共用同一个版本的APR。这很好。但是,随着时代的发展,当人们想升级UniMRCP时,发现问题了,那就是,FreeSWITCH用的APR库比较旧,而新版UniMRCP需要的库又比较新,升级不了了……

为什么FreeSWITCH不更新APR库吗?这就说来话长了。简单来说,那就是——升不了。

FreeSWITCH对APR库有一些改动。而这些改动并没有合并到上游的APR里。

为什么不能合并呢?说好的开源软件呢?不是说程序员一言不合就提交补丁吗?FreeSWITCH难道不能把自己修改的部分提交到上游的APR仓库里吗?

提交补丁很简单,但合并补丁还真不是那么简单。FreeSWITCH确实向APR提过补丁,但都是石沉大海。感兴趣的可以自行搜索一下,也可以参考以下这些链接。

  • https://bz.apache.org/bugzilla/show_bug.cgi?id=56948
  • https://bz.apache.org/bugzilla/show_bug.cgi?id=56947

所以,后来,FreeSWITCH就一直用旧版本的APR。因而导致UniMRCP也无法升级。

不过,时隔多年,FreeSWITCH团队终于解决了这个问题。解决方式也简单粗暴。把FreeSWITCH自己用的APR改成fspr。这样,就可以把mod_unimrcp移出FreeSWITCH代码树,放到独立的仓库中(https://github.com/freeswitch/mod_unimrcp/pull/1)。新的模块也转由社区维护,想咋升咋升。

什么?那mod_unimrcp是不是转为二等公民了?是,也不是。

首先,你可以自行编译,单独编译一个模块比放在FreeSWITCH里简单多了,比如:

代码语言:javascript
复制
$ git clone https://github.com/freeswitch/mod_unimrcp.git$ cd mod_unimrcp$ export PKG_CONFIG_PATH=/usr/local/freeswitch/libs/pkgconfig:/usr/local/unimrcp/libs/pkgconfig$ ./bootstrap.sh$ ./configure

详情可参见该模块的README(https://github.com/freeswitch/mod_unimrcp)。

其实,FreeSWITCH早就发明了一套机制,在FreeSWITCH主代码树的modules.conf中引用一个外部模块,编译还是像以前那样make install,没有任何不和谐。比如:

之前:

代码语言:javascript
复制
asr_tts/mod_unimrcp

现在:

代码语言:javascript
复制
mod_unimrcp|https://github.com/freeswitch/mod_unimrcp -b master

你甚至可以把你自己写的模块也放一条记录到modules.conf中去,只要你写得足够好,大家都愿意用,甚至也可以变成FreeSWITCH缺省的安装模块。

这是今年FreeSWITCH最大的改变,希望未来会越来越好。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeSWITCH中文社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档