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
英文地址,請注明出處:http://en.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…