顶顶通语音识别使用说明
介绍
顶顶通语音识别软件(asrproxy)是一个对接了多种语音识别接口的语音识别系统。可私有化部署(支持中文英文和方言等,支持一句话识别、实时流识别、多声道录音文件识别。
原理
asrproxy内嵌了阿里达摩院的开源语音识别工具包FunASR,后续我们也会使用自有的预料来增强模型,以后也会添加openai的开源模型whisper 。asrproxy也对接了主流的ASR云服务商,比如阿里云,科大讯飞,腾讯云,mrcp等。使用同一套接口就可以无缝切换各种ASR。
一句话识别接口和录音文件识别接口
识别参数放在http请求头里面,声音文件内容通过post发送,不需要编码发送原始文件就可以。
POST /asr HTTP/1.1
Host: 116.62.146.93:9990
User-Agent: Mozilla/5.0
Accept: */*
Cache-Control: max-age=0
Connection: close
id:test
samplerate: 8000
signature:605bef92414621abfca073ebc6ad7d3b
timestamp:1697505856
engine:shortsentence
Content-Length: 30240
声音数据
识别结果通过JSON返回。
HTTP/1.1 200 OK
Date: Tue, 17 Oct 2023 01:25:36 GMT
Server: www.ddrj.com
Content-Length: 35
Connection: Keep-Alive
Content-Type: text/plain
Pragma: no-cache
Cache-Control: private, max-age=0, no-cache{"code":"0","desc":"识别结果"}
请求参数说明
-
timestamp 时间戳和服务器误差只允许5分钟内
-
id asrproxy.json配置的用户id(asrproxy.json->short_sentence_asr->users)
-
signature 签名 md5(key+timestamp) 本例中key是test,md5(test1697505856)=605bef92414621abfca073ebc6ad7d3b。
key配置位置:asrproxy.json->short_sentence_asr->users->id->key -
engine 引擎类型 asrproxy.json->groups配置ASR引擎,默认配置是 shortsentence
-
hostwords 热词,多个热词用空格分开
-
datatype 数据类型,不设置默认是pcm类型
- pcm 原始的PCM数据,
- wav wav格式的数据
- mp3 mp3格式的数据
- url 通过URL获取文件
-
samplerate datatype是pcm时有效,声音采样频率,不设置默认是8000
-
sentence_time 是否需要输出句子时间,设置为true输出。
-
post内容
-
datatype是pcm、wav、mp3时是原始的声音数据
-
datatype是url的时候是josn格式的要识别的文件信息
{ "uuid":"唯一的ID,回调通知用", "callback_url":"识别结果回掉URL。", "file_url":"要识别文件的URL,支持本地文件的绝对路径和http文件", "ext":"wav|mp3|pcm"//http返回的数据类型,如果file_url是本地文件会根据文件后缀来识别文件类型 }
-
响应参数说明
- code 0 没错误 其他错误代码,如果有错误desc内容是错误信息
- desc
-
识别单声道文件时desc是字符串类型的识别结果。
-
识别多声道文件时并且sentence_time设置为fasle,desc字符串数组类型[“第一声道的识别结果”,“第二声道的识别结果”]
-
sentence_time 设置为true,desc是二维数组
- silence_duration 句子前面的静音时间,单位秒
- begin_time 句子开始时间,单位秒
- end_time 句子结束时间,单位秒
- speech_rate 语速,单位为每分钟字数
{"uuid": "","code": "0","desc": [[{"silence_duration": 1.36,"begin_time": 1.36,"end_time": 3.19,"speech_rate": 131.148,"text": "喂你好。"}, {"silence_duration": 0.74,"begin_time": 3.93,"end_time": 17.76,"speech_rate": 303.688,"text": "这边是百万医疗项目的客服哈。"}],[{"silence_duration": 1.36,"begin_time": 1.36,"end_time": 3.19,"speech_rate": 131.148,"text": "喂你好。"}, {"silence_duration": 0.74,"begin_time": 3.93,"end_time": 17.76,"speech_rate": 303.688,"text": "这边是百万医疗项目的客服哈。" }] ] }
-
测试方法
接口测试地址 http://demo.ddrj.com:9990/asr
浏览器直接上传文件测试地址 http://demo.ddrj.com:9990/test
可用curl命令测试,为了调过验证签名步骤,需要把asrproxy.json->short_sentence_asr->users->id(test)里面添加"not_validate_signature":true这个配置。
一句话识别测试
1.wav改成要识别的文件,如果识别的文件是mp3的,datatype:wav也要改成datatype:mp3
curl -H "id:test" -H "engine:shortsentence" -H "datatype:wav" -X POST --data-binary @1.wav http://demo.ddrj.com:9990/asr
录音文件识别测试
curl -H "id:test" -H "engine:shortsentence" -H "datatype:url" -X POST -d "{\"ext\":\"mp3\",\"uuid\":\"name\",\"file_url\":\"http://demo.ddrj.com/t1.mp3\",\"callback_url\":\"http://demo.ddrj.com/ttsresult\"}" http://demo.ddrj.com:9990/asr
实时流识别接口
通过websocket连接上 ws://127.0.0.1:9988 ,发送一个请求头,然后发送二进制的声音流,结束识别发送字符串END
结束识别。
引导头格式为 时间戳json的参数\0,注意\0是一个二禁制的0。
1699344741507{"callid":"07ca13d3-55cc-47ef-a591-ffaee83d0e0b","asr_mode":1,"hot_word":"","asr_params":{"group":"default"},"vad_min_active_time_ms":100,"vad_max_end_silence_time_ms":1000,"wait_speech_timeout_ms":5000,"max_speech_time_ms":60000,"samples_per_second":8000}\0
- asr_mode: asr模式 0只第一句话 1 持续识别
- hot_word: 热词 ,需要asr引擎支持
- asr_params: asr参数,可用来选择asr引擎 {“group”:“default”}
- vad_min_active_time_ms: 最小说话时间,需要ASR引擎支持
- vad_max_end_silence_time_ms: 最大静音时间,需要ASR引擎支持
- wait_speech_timeout_ms: 等待说话时间,需要ASR引擎支持
- max_speech_time_ms: 最大识别时间,需要ASR引擎支持
- samples_per_second: 声音频率 8000或者 16000
返回识别结果
【标记1个字节-识别结果】
标记字符含义
0:中间结果
1:句子结束,对于支持长时间识别的ASR才支持,用于断句。
F:识别结束,客户端已经发送了END
f:识别结束,客户端没有发送END,ASR检测到静音太长认为停止说话了。
E:ASR错误
标志是f/F/E的时候客户端要主动断开连接
测试页面
http://demo.ddrj.com/wsasr.html
配置
{"key":"asrproxy.license", //授权文件路径"log":{"console_level":0, //输出控制台日志等级0-5(0:DEBUG, 1:INFO, 2:NOTICE, 3:WARNING, 4:CRIT, 5:CONSOLE)"file_level":0, //输出到文件日志等级0-5(0:DEBUG, 1:INFO, 2:NOTICE, 3:WARNING, 4:CRIT, 5:CONSOLE)"file_maxsize":100, //文件大于多少M就自动创建新的日志文件。"file_number":10 //最大保留日志文件个数},"short_sentence_asr":{"listen_ip":"0.0.0.0","listen_port":9990,"bgasr_thread_count":null, //录音文件识别的ASR线程个数,如果不设置就是根据CPU个数自动设置。"users":{//用户ID,可以配置多个用户"test":{ "not_validate_signature":false,//是否禁用验证签名,改成true,就是不验证签名"key":"test",//用户KEY"ip":"*" //*任意IP都可以访问,也可以限制可以访问的ip}}},"asr":{"listen_ip": "127.0.0.1","listen_port": 9988,"storage": "record", //asr录音目录,调用asr时,设置了asr_params.recordfilename才会录音。"acl":"*", //哪些IP可以访问,配置*任意IP都可以访问,多个IP用逗号隔开,如果不配置acl,通过127.0.0.1不需要配置在ACL里面也可以访问。"interface": {"funasr": {"type": "funasr","engine": "sentence", //一句话"enable_itn":true, //数字转换成阿拉伯数字"model-dir": "model/paraformer-large"//模型目录},"funasr_realtime": {"type": "funasr","engine": "2pass",//offline:关闭实时识别 online:开启实时识别 2pass:混合2种模式,需要更多CPU。"enable_itn":true, //数字转换成阿拉伯数字 "model-dir": "model/paraformer-large","online-model-dir": "model/paraformer-large-online","punc-dir": "model/punc-realtime","chunk-size":4800 } },"groups":{//实时识别使用的ASR"default":{ "mode":0, //0:顺序使用,当使用数量等于count的时候切换下一个 1:循环使用"enable": //启用的那些ASR配置["funasr_realtime"]},//一句话识别和文件识别使用的ASR"shortsentence":{"mode":0,"enable":["funasr"]}}}
}
相关文章:
顶顶通语音识别使用说明
介绍 顶顶通语音识别软件(asrproxy)是一个对接了多种语音识别接口的语音识别系统。可私有化部署(支持中文英文和方言等,支持一句话识别、实时流识别、多声道录音文件识别。 原理 asrproxy内嵌了阿里达摩院的开源语音识别工具包FunASR,后续我们也会使用自有的预料…...

重磅发布 OpenAI 推出用户自定义版 ChatGPT
文章目录 重磅发布 OpenAI 推出用户自定义版 ChatGPT个人简介 重磅发布 OpenAI 推出用户自定义版 ChatGPT OpenAI 首届开发者大会 (OpenAI DevDay) 于北京时间 11 月 7 日凌晨 02:00 开始,大会上宣布了一系列平台更新。其中一个重要更新是用户可以创建他们自己的自定…...
Java 幼儿园(20231111)读取 json 文件
1、功能场景 (1)多人合作开发一个功能模块时,需要调用外部接口 (2)对方接口的开发工作还没有完成,只能提供一个返回值的示例文件 json 文件。 (3)返回的 json 数据多达几百个字段。 …...

云计算、大数据技术的智慧工地,实现对建筑工地实时监测、管理和控制的一种新型建筑管理方式
智慧工地是利用物联网、云计算、大数据等技术,实现对建筑工地实时监测、管理和控制的一种新型建筑管理方式。 智慧工地架构: 1、终端层: 充分利用物联网技术、移动应用、智能硬件设备提高现场管控能力。通过RFID、传感器、摄像头、手机等终…...

功能案例 -- 通过开关,改变白天和黑夜
效果展示 代码展示 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><style>:root {--default-bac-color: #f…...

Linux编写一个极简版本的Shell
Linux编写一个极简版本的Shell 📟作者主页:慢热的陕西人 🌴专栏链接:Linux 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要内容在Linux环境下ÿ…...

亚马逊云AI应用科技创新下的Amazon SageMaker使用教程
目录 Amazon SageMaker简介 Amazon SageMaker在控制台的使用 模型的各项参数 pytorch训练绘图部分代码 Amazon SageMaker简介 亚马逊SageMaker是一种完全托管的机器学习服务。借助 SageMaker,数据科学家和开发人员可以快速、轻松地构建和训练机器学习模型&#…...
Eigen:旋转向量(Angle-Axis)转换为四元素和旋转矩阵
0. 在固定欧拉角系下。 绕固定系旋转,旋转的先后顺序为X、Y、Z。当然也支持XYZ的任意顺序旋转。 1. 转为四元素 Eigen::Quaterniond q Eigen::AngleAxisd(yaw, Eigen::Vector3d::UnitZ()) *Eigen::AngleAxisd(pitch, Eigen::Vector3d::UnitY()) *Eigen::AngleAxi…...
C#8.0本质论第十二章--泛型
C#8.0本质论第十二章–泛型 C#通过泛型来促进代码重用,在词义上等价于C模板。 在泛型编程中,数据类型也是一种参数。 12.1如果C#没有泛型 为object的方法使用值类型时,“运行时”将自动对它进行装箱,获取值类型的实例时则需要…...
Python与ArcGIS系列(七)自动化打印地图
目录 0 简述1 获取可用打印机列表2 打印地图3 导出地图至PDF4 导出地图至图像0 简述 本篇介绍如何利用arcpy实现获取可用打印机列表、打印地图、导出地图至PDF和图像。 1 获取可用打印机列表 通过arcpy提供的ListPrinterNames()函数可以生成可用的打印机列表。 import arcpy.m…...

基于STM32单片机抢答器设计
**单片机设计介绍, 基于STM32单片机抢答器设计-Proteus仿真 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于STM32单片机的抢答器设计可以用于教育和培训场景中的抢答游戏或考试环节。以下是一个基本的介绍设计步骤…...

冯·诺伊曼体系结构--操作系统
文章目录 1.认识冯诺依曼系统1.1约翰冯诺依曼1.2冯诺依曼结构1.3存储器的读写速度1.4对冯诺依曼结构的认识1.5冯诺依曼结构在生活中的演示 2.操作系统--“搞管理”的软件2.1概念2.2OS存在的意义2.3管理的方式2.4系统调用和库函数概念 1.认识冯诺依曼系统 1.1约翰冯诺依曼 1.2冯…...
IDEA插件开发--持久化配置信息方案
这里写自定义目录标题 配置信息持久化存储保存配置文件的方式每种方式的实现方案1.PropertiesComponent:2.PersistentStateComponent:3.Project Settings:4.外部文件: 5.数据库:6.加密数据:7,自定义配置文件…...

Vscode禁止插件自动更新
由于电脑的vscode版本不是很新。2022.10月份的版本1.7.2,电脑vscode的python插件装的也是2022年4月份的某个版本,但插件经常自动更新,导致python代码无法Debug,解决办法: 点设置,搜autoUpdate, 把红色框选成无...
Zookeeper篇---第六篇
系列文章目录 文章目录 系列文章目录一、请简述Zookeeper的选主流程二、为什么Zookeeper集群的数目,一般为奇数个?三、知道Zookeeper监听器的原理吗?一、请简述Zookeeper的选主流程 Zookeeper的核心是原子广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做…...
mysql数据库存储过程之游标(光标cursor)
游标是用来存储查询结果集的数据类型,在存储过程和函数中可以使用游标对结果集进行循环的处理。游标的使用包括游标的声明、open、fetch和close。 一、语法。 #声明游标 declare 游标名称 cursor for 查询语句; #开启游标 open 游标名称; #获取游标记录 fetch 游标…...

「帝国风暴兵」加入 The Sandbox,推出真实的全新人物化身系列和体验!
我们很高兴宣布与流行文化中最具标志性的娱乐品牌 Shepperton 设计工作室的「帝国风暴兵」达成合作伙伴关系。这一合作标志着该科幻品牌首次进入元宇宙,让风暴兵的粉丝们以全新的方式体验「帝国风暴兵」。 在这个体验中,玩家将置身于帝国风暴兵的营地&am…...

asp.net员工管理系统VS开发sqlserver数据库web结构c#编程包括出差、请假、考勤
一、源码特点 asp.net员工管理系统是一套完善的web设计管理系统(主要包括出差、请假、考勤基础业务管理),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010 ,数据库为sqlserver2008&a…...

C++套接字库sockpp介绍
sockpp是一个开源、简单、现代的C套接字库,地址为:https://github.com/fpagliughi/sockpp,最新发布版本为0.8.1,license为BSD-3-Clause。目前支持Linux、Windows、Mac上的IPv4、IPv6和Unix域套接字。其它*nix和POSIX系统只需很少的…...
Mac M2开发环境安装
持续更新 brew 安装 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"JAVA多版本环境 ## 终端下载安装 brew install --cask temurin8 brew install --cask temurin11 brew install --cask temurin17## vim ~/.…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...