FreeSWITCH 简单图形化界面46 - 收集打包的一些ASR服务

FreeSWITCH 简单图形化界面46 - 收集打包的一些ASR服务

  • 0、一个fs的web配置界面预览
  • 1、docker地址
  • 2、使用
    • 2.1 下载
    • 2.2 运行
  • 3、例子
    • 3.1 下载
    • 3.2 启动
    • 3.3 编译mod_audio_fork或者mod_audio_stream模块使用
    • 3.4 编写呼叫路由和呼叫脚本
      • 呼叫路由
      • 呼叫脚本
    • 3.5 esl捕获识别结果
    • 3.6 其他处理
    • 3.7 测试视频参考


0、一个fs的web配置界面预览

http://myfs.f3322.net:8020/
用户名:admin,密码:admin

FreeSWITCH界面安装参考:https://blog.csdn.net/jia198810/article/details/137820796

1、docker地址

registry.cn-hangzhou.aliyuncs.com/pbx/asr-47m            latest    616 MB
registry.cn-hangzhou.aliyuncs.com/pbx/asr-14m            latest    588 MB
registry.cn-hangzhou.aliyuncs.com/pbx/asr-124m           latest    653 MB
registry.cn-hangzhou.aliyuncs.com/pbx/my-funasr          latest    6.5G

2、使用

2.1 下载

# 下载对应的asr地址
podman pull registry.cn-hangzhou.aliyuncs.com/pbx/asr-124m

2.2 运行

# asr-124m  中英文 124M
# sherpa-ncnn-streaming-zipformer-bilingual-zh-en-2023-02-13
# 启动 -v为热词,可选,-e为变量,NUM_THREADS为最大线程,可选,下面的都一样
podman run -itd -p 8000:8000/tcp -v /root/hotwords.txt:/root/hotwords.txt -e NUM_THREADS=4 --name asr-124m asr-124m
# 查看日志
podman exec -it asr-124m tail -f /var/log/asr.log # asr-14m  中文 14M
# sherpa-ncnn-streaming-zipformer-zh-14m-2023-02-23-chinese
podman run -itd -p 8000:8000/tcp -v /root/hotwords.txt:/root/hotwords.txt -e NUM_THREADS=4 --name asr-14m asr-14m# asr-47m  中英文 47M
# sherpa-ncnn-streaming-zipformer-small-bilingual-zh-en-2023-02-16-bilingual-chinese-english
podman run -itd -p 8000:8000/tcp -v /root/hotwords.txt:/root/hotwords.txt -e NUM_THREADS=4 --name asr-47m asr-47m# Funasr  启动较慢
# 可以进入容器netstat -tnlp是否启动8000和10095 ,
#`offline`表示推理模式为一句话识别;
#`online`表示推理模式为实时语音识别;
#`2pass`表示为实时语音识别,并且说话句尾采用离线模型进行纠错;
# 用online吧,online效果还是可以的
podman run -itd -p 8000:8000 -p 10095:10095  -e MODE='online'  -v /root/hotwords.txt:/workspace/models/hotwords.txt --name my-funasr my-funasr

3、例子

3.1 下载

root@xiaojia-ts /h/xiaojia# podman pull registry.cn-hangzhou.aliyuncs.com/pbx/asr-124m                                                                                           (base) 
Trying to pull registry.cn-hangzhou.aliyuncs.com/pbx/asr-124m:latest...
Getting image source signatures
Copying blob fcbb30fb83d0 done   | 
Copying blob 5b4de9788e44 skipped: already exists  
Copying blob f686e60318db done   | 
Copying blob 095f960760ee skipped: already exists  
Copying blob 6721db44a395 done   | 
Copying config 8e4c94354d done   | 
Writing manifest to image destination
8e4c94354db2df8a0dea58c552e616afcc660acad95bd940f280c193129ab908

3.2 启动

root@xiaojia-ts /h/xiaojia# podman run -itd -p 8000:8000/tcp  -e NUM_THREADS=4 --name asr-124m asr-124m                                                                          (base) 
96878427c8d4e1b0b2bf4fe96386c253d10f95eac12fa32af4066747b4d2d231

3.3 编译mod_audio_fork或者mod_audio_stream模块使用

参考下面的地址,编译该模块,如果安装了图形化界面,自动mod_audio_fork模块。
https://gitee.com/rasonyang/drachtio-freeswitch-modules/blob/main/modules/mod_audio_fork/README.md
https://github.com/amigniter/mod_audio_stream

编译完成后,加载模块

freeswitch@MyFs> load mod_audio_fork 
+OK Reloading XML
+OK

mod_audio_fork对应的api为

uuid_audio_fork <uuid> start <wss-url> <mix-type> <sampling-rate> <metadata>

3.4 编写呼叫路由和呼叫脚本

呼叫路由

<extension name="11120-自定义ASR"><condition expression="^(11120)$" field="destination_number"><action application="python" data="handle-asr"/><action application="hangup"/></condition>
</extension>

呼叫脚本

#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*-
"""
处理语音识别结果
"""from freeswitch import *
import refsapi = API()def handler(session, args):# 接通session.answer()# 获取uuiduuid = session.getVariable("uuid")# 执行api,把该uuid的audio发送到asr地址的8000(上面的容器映射的端口),单声道mono,采样率16kcmd = "uuid_audio_fork {} start ws://192.168.1.70:8000/ mono 16k".format(uuid)fsapi.executeString(cmd)# 超时时间session.sleep(30000)

3.5 esl捕获识别结果

连接esl,获取"Event-Subclass": "mod_audio_fork::json"事件,_body为识别内容。

{"Event-Subclass":	"mod_audio_fork::json","Event-Name":	"CUSTOM","Core-UUID":	"5788c155-5b0e-48c9-8ec8-accd46623a0b","FreeSWITCH-Hostname":	"localhost.localdomain","FreeSWITCH-Switchname":	"MyFs","FreeSWITCH-IPv4":	"192.168.1.20","FreeSWITCH-IPv6":	"::1","中间很多内容,略过......""variable_playback_seconds":	"1","variable_playback_ms":	"1000","variable_playback_samples":	"8000","Content-Length":	"144","Content-Length":	"144","_body":	"{\"text\":\"今天是205年8月2号然后我在测试一个语音识别程序我主要想看一下原始月的准确度\",\"timestamp\":1754120626173}"
}

3.6 其他处理

识别结果拿到后,解析body内容,可以在esl里编写程序,进行其他处理。

3.7 测试视频参考

下面为这个registry.cn-hangzhou.aliyuncs.com/pbx/asr-124m的测试结果

FreeSWITCH asr测试

祝君成功,好运连连

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/91829.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/91829.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20250805问答课题-实现TextRank + 问题分类

textRank的工具包实现其他可能的实现方法&#xff0c;对比结果查找分类的相关算法 目录 1. 关键词提取TF-IDF TextRank 1.1. TF-IDF算法 1.2. TextRank算法 1.3. 双算法提取关键词 2. 问题分类 2.1. 预处理 2.2. 获取BERT向量 2.3. 一级标签预测 2.4. 二级标签预测 3…

Memcached缓存与Redis缓存的区别、优缺点和适用场景

一、核心差异概述特性MemcachedRedis​数据结构​简单键值存储丰富数据结构&#xff08;String/Hash/List/Set等&#xff09;​持久化​不支持支持RDB和AOF两种方式​线程模型​多线程单线程&#xff08;6.0支持多线程I/O&#xff09;​内存管理​Slab分配LRU淘汰多种淘汰策略&…

Git简易教程

Git教程 VCS Version Control System版本控制系统 配置用户名邮箱 配置用户名和邮箱 git config --global user.name mihu git config --global user.email aaabbb.com初始化仓库 从项目仓库拉 git clone [项目地址]新建文件夹之后 git init提交操作 提交到仓库 git add . #把…

关于Web前端安全之XSS攻击防御增强方法

仅依赖前端验证是无法完全防止 XSS的&#xff0c;还需要增强后端验证&#xff0c;使用DOMPurify净化 HTML 时&#xff0c;还需要平衡安全性与业务需求。一、仅依赖前端验证无法完全防止 XSS 的原因及后端验证的重要性1. 前端验证的局限性前端验证&#xff08;如 JavaScript 输入…

消息系统技术文档

消息系统技术文档 概述 本文档详细说明了如何在现有的LHD通信系统中添加自己的消息类型&#xff0c;包括消息的发送、接收、解析和处理的完整流程。 系统架构 消息流程架构图 #mermaid-svg-My7ThVxSl6aftvWK {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博舆情数据可视化分析-热词情感趋势树形图

大家好&#xff0c;我是java1234_小锋老师&#xff0c;最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts)视频教程&#xff0c;持续更新中&#xff0c;计划月底更新完&#xff0c;感谢支持。今天讲解微博舆情数据可视化分析-热词情感趋势树形图…

8月4日 强对流天气蓝色预警持续:多地需警惕雷暴大风与短时强降水

中央气象台8月4日10时继续发布强对流天气蓝色预警,提醒广大民众注意防范即将到来的恶劣天气。 预警详情: 时间范围: 8月4日14时至5日14时 影响区域: 雷暴大风或冰雹: 西北地区中东部、华北中北部、华南南部等地,风力可达8级以上。 短时强降水: 西北地区中东部、华北、…

C语言数据结构(4)单链表专题2.单链表的应用

1. 链表经典算法——OJ题目 1.1 单链表相关经典算法OJ题1&#xff1a;移除链表元素 1.2 单链表相关经典算法OJ题2&#xff1a;反转链表 1.3 单链表相关经典算法OJ题3&#xff1a;合并两个有序链表 1.4 单链表相关经典算法OJ题4&#xff1a;链表的中间结点 1.5 循环链表…

Shell 脚本发送信号给 C 应用程序,让 C 应用程序回收线程资源后自行退出。

下面分别给出一个 Shell 脚本和 C 程序的例子&#xff0c;实现通过 Shell 脚本发送信号给 C 应用程序&#xff0c;让 C 应用程序回收线程资源后自行退出。原理在 Linux 系统中&#xff0c;我们可以使用信号机制来实现进程间的通信。Shell 脚本可以使用 kill 命令向指定的进程发…

C++入门自学Day6-- STL简介(初识)

往期内容回顾 C模版 C/C内存管理&#xff08;初识&#xff09; C/C内存管理&#xff08;续&#xff09; STL简介&#xff1a; STL 是 C 标准库的重要组成部分&#xff0c;是一个通用程序设计的模板库&#xff0c;用于数据结构和算法的复用。它极大地提升了代码效率、可靠性…

从零开始搞定类与对象(中)

运算符重载1.当运算符被用于类类型的对象时&#xff0c;C语言允许我们通过运算符重载的形式指定新的含义。C规定类类型对象使用运算符时&#xff0c;必须转换成调用对应运算符重载&#xff0c;若没有对应的运算符重载&#xff0c;则会编译报错。2. 运算符重载是具有特殊名字的函…

SpringMVC实战指南:从环境搭建到功能实现全解析

第一章&#xff1a;SpringMVC环境搭建与基础配置1.1 Maven依赖配置在Maven项目中&#xff0c;SpringMVC的依赖配置是开发的第一步。根据Spring官方推荐&#xff0c;以下是SpringMVC 5.3.x版本的Maven依赖配置&#xff1a;<dependencies><!-- Spring MVC核心依赖 -->…

Repo 与 manifest

Manifest&#xff1a;它本身就是一个 git 仓库&#xff0c;其中存放的都是包含仓库和子仓库信息的XML文件。这些文件全部由开发者或者维护者手动配置并自己上传到 git 仓库。另外&#xff1a;Manifest 中的仓库之间的依赖关系 repo 也并不关心。所以它们可以是同级的也可以是包…

深入浅出 RabbitMQ:简单队列实战指南

大家好&#xff0c;我是工藤学编程 &#x1f989;一个正在努力学习的小博主&#xff0c;期待你的关注实战代码系列最新文章&#x1f609;C实现图书管理系统&#xff08;Qt C GUI界面版&#xff09;SpringBoot实战系列&#x1f437;【SpringBoot实战系列】SpringBoot3.X 整合 Mi…

Ubuntu22-Qt Creator-fcitx-中文输入

fcitx在ubuntu系统中路径 /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/ /usr/lib/x86_64-linux-gnu/qt6/plugins/platforminputcontexts/ fcitx-qt5-1.2.7 编译 下载链接:https://github.com/fcitx/fcitx-qt5/archive/refs/tags/1.2.7.zip Qt版本:Qt C…

【Java基础|第十三篇】面向对象基础(三)——继承(一)继承的理解,实现,特点……

&#xff08;四&#xff09;面向对象&#xff1a; 5、继承&#xff1a; &#xff08;1&#xff09;理解&#xff1a; 概念&#xff1a; 继承是面向对象的三大特征之一 继承是类与类之间关系的一种&#xff08;是父类与子类的关系&#xff09; 使用场景&#xff1a; 一个类与另…

QGIS绿色版吉林一号切片体验版插件(Jilin1Tiles)更新

吉林一号更新2024年图源了但吉林一号切片体验版插件&#xff08;Jilin1Tiles&#xff09;还没有更新&#xff0c;我修改了一下代码&#xff0c;直接集成到QGIS绿色版中。如下&#xff1a;注意&#xff1a;第一次使用的时候需要选中启用一下插件&#xff1a;需要使用的可以直接下…

git操作命令和golang编译脚本

git子模块信息处理命令git init submodule git submodule updategit取消合并 git merge --abort git reset --hard HEAD{1}bat文件生成二进制set GOOSlinux set GOARCHamd64 go env -w GOFLAGS-modvendor go build -ldflags "-w -s" -ohallapiset GOOSlinux set GOAR…

通往L4之路:构建自我进化的智能驾驶决策大脑

摘要&#xff1a; 本文旨在提出一个超越当前主流“感知-预测-规划”分离式架构的下一代自动驾驶决策系统方案。面对自动驾驶领域最核心的“长尾场景”难题&#xff0c;本文借鉴并升华了一套源于复杂策略制定的决策智能框架&#xff0c;通过构建动态驾驶世界模型&#xff08;Dyn…

AI编程助手:终结996的新希望

引言程序员工作现状与“996”现象的普遍性AI技术快速发展对编程效率的潜在影响核心问题&#xff1a;AI IDE与AI辅助编程能否改变传统开发模式AI IDE与AI辅助编程的核心技术AI IDE的定义与功能&#xff08;代码补全、错误检测、自动重构等&#xff09;AI辅助编程工具&#xff08…