FreeSWITCH对接vosk实现实时语音识别

这篇具有很好参考价值的文章主要介绍了FreeSWITCH对接vosk实现实时语音识别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境:CentOS 7.6_x64
FreeSWITCH版本 :1.10.9
Python版本:3.9.2

一、背景描述

vosk是一个开源语音识别工具,可识别中文,之前介绍过python使用vosk进行中文语音识别,今天记录下FreeSWITCH对接vosk实现实时语音识别。
vosk离线语音识别可参考我之前写的文章:
python使用vosk进行中文语音识别

二、具体实现

1、编译及安装vosk模块

可直接使用github上的代码进行编译:

https://github.com/alphacep/freeswitch.git

FreeSWITCH对接vosk实现实时语音识别

 这里描述下使用FreeSWITCH 1.10.9 编译 mod_vosk 的过程,大致步骤如下:

1)将 mod_vosk 代码复制到 freeswitch-1.10.9.-release/src/mod/asr_tts 目录;

2)modules.conf 文件中启用mod_vosk模块;

FreeSWITCH对接vosk实现实时语音识别

 3)生成 Makefile 文件;

./devel-bootstrap.sh && ./configure

4) 编译并安装 vosk 模块;

cd freeswitch-1.10.9.-release/src/mod/asr_tts/mod_vosk
make 
make install

FreeSWITCH对接vosk实现实时语音识别

fs编译遇到问题,可参考这篇文章:CentOS7环境源码安装freeswitch1.10

 2、配置 vosk 模块

1)启用 vosk 模块;

编辑 autoload_configs/modules.conf.xml 文件,启用 vosk 模块:

<load module="mod_vosk"/>

2)配置 conf 文件;

将 mod_vosk/conf/vosk.conf.xml 配置文件复制到 如下路径:

/usr/local/freeswitch/conf/autoload_configs/

修改 vosk 服务器地址:

FreeSWITCH对接vosk实现实时语音识别

三、运行效果

1、启动 vosk 服务器

目录:vosk-server\websocket

启动命令如下:

workon py39env
python asr_server.py vosk-model-cn-0.15

运行效果如下:

FreeSWITCH对接vosk实现实时语音识别

具体可参考我之前写的文章:python使用vosk进行中文语音识别

 2、实时语音识别

编写拨号方案:

<condition field="destination_number" expression="^123456$">
  <action application="answer"/>
  <action application="set" data="fire_asr_events=true"/>
  <action application="detect_speech" data="vosk default default"/>
  <action application="sleep" data="10000000"/>
</condition>

本地分机拨打123456进行验证,运行效果如下:

FreeSWITCH对接vosk实现实时语音识别

 运行效果视频获取途径:

 关注微信公众号(聊聊博文,文末可扫码)后回复 2023050401 获取。

3、回铃音识别

这里使用其它服务器配合来模拟回铃音。
fs服务器 :192.168.137.32
回铃音服务器 :192.168.137.31
3.1 配置回铃音服务器
核心点是使用 pre_answer 应用,设置回铃音。
拨号方案如下:
<extension name="public_extensions">
      <condition field="destination_number" expression="^(654321)$">
        <action application="pre_answer"/>
        <action application="set" data="ringback=/usr/local/freeswitch/sounds/test/tips1.wav"/>
        <action application="transfer" data="1008 XML default"/>
      </condition>
</extension>

需要注意的是,如果回铃音不生效,可以看下后续的拨号方案是否有替换动作。 

3.2 配置网关

网关配置信息: 

[root@host32 conf]# cat sip_profiles/external/gw_a.xml
<include>
    <gateway name="gw_A">
        <param name="username" value="anonymous"/>
        <param name="from-user" value=""/>
        <param name="password" value=""/>
        <param name="outbound-proxy" value="192.168.137.31:5080"/>
        <param name="register-proxy" value="192.168.137.31:5080"/>
        <param name="expire-seconds" value="120"/>
        <param name="register" value="false"/>
        <param name="register-transport" value="UDP"/>
        <param name="caller-id-in-from" value="true"/>
        <param name="extension-in-contact" value="true"/>
        <variables>
          <variable name="gateway_name" value="gw_A"/>
        </variables>
    </gateway>
</include>
[root@host32 conf]#

3.3 编写本地拨号方案

本地拨号方案:

<condition field="destination_number" expression="^9123456$">
  <action application="bridge" data="{ignore_early_media=false,bridge_early_media=true,fire_asr_events=true,execute_on_pre_answer='detect_speech vosk default default'}sofia/gateway/gw_A/654321"/>
</condition>

本地分机拨打9123456,可听到回铃音,识别效果如下:

FreeSWITCH对接vosk实现实时语音识别

 运行效果视频获取途径:

 关注微信公众号(聊聊博文,文末可扫码)后回复 2023050402 获取。

四、资源下载

本文涉及源码及预编译模块二进制文件,可以从如下途径获取:

关注微信公众号(聊聊博文,文末可扫码)后回复 20230504 获取。

FreeSWITCH对接vosk实现实时语音识别文章来源地址https://www.toymoban.com/news/detail-433605.html

到了这里,关于FreeSWITCH对接vosk实现实时语音识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 鸿蒙应用开发-录音并使用WebSocket实现实时语音识别

    功能介绍: 录音并实时获取RAW的音频格式数据,利用WebSocket上传数据到服务器,并实时获取语音识别结果,参考文档使用AudioCapturer开发音频录制功能(ArkTS),更详细接口信息请查看接口文档:AudioCapturer8+和@ohos.net.webSocket (WebSocket连接)。 知识点: 熟悉使用AudioCapturer录音并实时

    2024年04月25日
    浏览(44)
  • 基于ARM树莓派实现智能家居:语音识别控制,Socket网络控制,火灾报警检测,实时监控

    目录 一   项目说明 ①   设计框架 ②   功能说明 ③   硬件说明 ④   软件说明 二   项目代码 1 mainPro.c 主函数 2 InputCommand.h 控制设备头文件 3 contrlDevices.h 外接设备头文件 4 bathroomLight.c 泳池灯 5 livingroomLight.c 卧室灯 6 restaurantLight.c 餐厅灯 7 upstairLight.c 二楼灯 8 fire.c 火焰

    2024年02月03日
    浏览(65)
  • 基于RAM树莓派实现智能家居:语音识别控制,Socket网络控制,火灾报警检测,实时监控

    目录 一   项目说明 ①   设计框架 ②   功能说明 ③   硬件说明 ④   软件说明 二   项目代码 1 mainPro.c 主函数 2 InputCommand.h 控制设备头文件 3 contrlDevices.h 外接设备头文件 4 bathroomLight.c 泳池灯 5 livingroomLight.c 卧室灯 6 restaurantLight.c 餐厅灯 7 upstairLight.c 二楼灯 8 fire.c 火焰

    2024年02月02日
    浏览(58)
  • OpenAI开源!!Whisper语音识别实战!!【环境配置+代码实现】

    目录 环境配置 代码实现 ******  实现 .mp4转换为 .wav文件,识别后进行匹配并输出出现的次数 ******  完整代码实现请私信 安装 ffmpeg 打开网址   https://github.com/BtbN/FFmpeg-Builds/releases 下载如下图所示的文件 下载后解压  我的路径是G:ffmpeg-master-latest-win64-gpl-shared

    2024年02月13日
    浏览(54)
  • 顶顶通电话机器人接口对接开源ASR(语音识别)

    目前大部分用户使用的都是在线ASR按照分钟或者按次付费,之前开源ASR效果太差不具备商用的条件,随着 阿里达摩院发布了大量开源数据集或者海量工业数据训练的模型,识别效果已经和商用ASR差距非常小,完全具备了很多场景代替商用ASR的能力。 顶顶通也全系列产品进行

    2024年02月08日
    浏览(46)
  • 识别准确率竟如此高,实时语音识别服务

    本文将介绍一个准确率非常高的语音识别框架,那就是FunASR,这个框架的模型训练数据超过几万个小时,经过测试,准确率非常高。本文将介绍如何启动WebSocket服务和Android调用这个服务来实时识别,一边说话一边出结果。 安装Pytorch。 使用conda安装ffmpeg等一些库。 安装其他依

    2024年02月07日
    浏览(43)
  • Android开发中实时语音开发之华为实时语音识别

    上一篇(Android开发中,百度语音集成之一)简单的讲解了百度语音的识别,今天讲解一个华为的语音识别: 最后附上全部的代码以供参考:

    2024年01月18日
    浏览(40)
  • 实时语音识别(Python+HTML实战)

    项目下载地址:FunASR 项目提示所需要下载的库文件:pip install -U funasr 和 pip install modelscope 运行过程中,我发现还需要下载以下库文件才能正常运行: 下载:pip install websockets,pip install ffmpeg 运行 FunASR-main/runtime/python/websocket/funasr_wss_server.py 文件,加载模型 注:如果提示缺少

    2024年04月08日
    浏览(59)
  • [python]基于faster whisper实时语音识别语音转文本

    语音识别转文本相信很多人都用过,不管是手机自带,还是腾讯视频都附带有此功能,今天简单说下: faster whisper地址: https://github.com/SYSTRAN/faster-whisper https://link.zhihu.com/?target=https%3A//github.com/SYSTRAN/faster-whisper 实现功能: 从麦克风获取声音进行实时语音识别转文本 代码仅仅

    2024年02月03日
    浏览(43)
  • 【RV1126】移植kaldi实时语音识别

    参考:Greedy search与beam search 在下面会用到解码的方法选择 greedy_search :贪心搜索,贪心搜索是一种来自计算机科学的算法,生成第一个词的分布以后,它将会根据你的条件语言模型挑选出最有可能的第一个词进入你的机器翻译模型中,在挑选出第一个词之后它将会继续挑选出

    2024年02月04日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包