当前位置: 首页 > news >正文

顶顶通语音识别使用说明

介绍

顶顶通语音识别软件(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类型

    1. pcm 原始的PCM数据,
    2. wav wav格式的数据
    3. mp3 mp3格式的数据
    4. 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 &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容在Linux环境下&#xff…...

亚马逊云AI应用科技创新下的Amazon SageMaker使用教程

目录 Amazon SageMaker简介 Amazon SageMaker在控制台的使用 模型的各项参数 pytorch训练绘图部分代码 Amazon SageMaker简介 亚马逊SageMaker是一种完全托管的机器学习服务。借助 SageMaker&#xff0c;数据科学家和开发人员可以快速、轻松地构建和训练机器学习模型&#…...

Eigen:旋转向量(Angle-Axis)转换为四元素和旋转矩阵

0. 在固定欧拉角系下。 绕固定系旋转&#xff0c;旋转的先后顺序为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#通过泛型来促进代码重用&#xff0c;在词义上等价于C模板。 在泛型编程中&#xff0c;数据类型也是一种参数。 12.1如果C#没有泛型 为object的方法使用值类型时&#xff0c;“运行时”将自动对它进行装箱&#xff0c;获取值类型的实例时则需要…...

Python与ArcGIS系列(七)自动化打印地图

目录 0 简述1 获取可用打印机列表2 打印地图3 导出地图至PDF4 导出地图至图像0 简述 本篇介绍如何利用arcpy实现获取可用打印机列表、打印地图、导出地图至PDF和图像。 1 获取可用打印机列表 通过arcpy提供的ListPrinterNames()函数可以生成可用的打印机列表。 import arcpy.m…...

基于STM32单片机抢答器设计

**单片机设计介绍&#xff0c; 基于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&#xff1a;2.PersistentStateComponent&#xff1a;3.Project Settings&#xff1a;4.外部文件&#xff1a; 5.数据库&#xff1a;6.加密数据&#xff1a;7,自定义配置文件…...

Vscode禁止插件自动更新

由于电脑的vscode版本不是很新。2022.10月份的版本1.7.2&#xff0c;电脑vscode的python插件装的也是2022年4月份的某个版本&#xff0c;但插件经常自动更新&#xff0c;导致python代码无法Debug,解决办法&#xff1a; 点设置&#xff0c;搜autoUpdate, 把红色框选成无...

Zookeeper篇---第六篇

系列文章目录 文章目录 系列文章目录一、请简述Zookeeper的选主流程二、为什么Zookeeper集群的数目,一般为奇数个?三、知道Zookeeper监听器的原理吗?一、请简述Zookeeper的选主流程 Zookeeper的核心是原子广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做…...

mysql数据库存储过程之游标(光标cursor)

游标是用来存储查询结果集的数据类型&#xff0c;在存储过程和函数中可以使用游标对结果集进行循环的处理。游标的使用包括游标的声明、open、fetch和close。 一、语法。 #声明游标 declare 游标名称 cursor for 查询语句; #开启游标 open 游标名称; #获取游标记录 fetch 游标…...

「帝国风暴兵」加入 The Sandbox,推出真实的全新人物化身系列和体验!

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

asp.net员工管理系统VS开发sqlserver数据库web结构c#编程包括出差、请假、考勤

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

C++套接字库sockpp介绍

sockpp是一个开源、简单、现代的C套接字库&#xff0c;地址为&#xff1a;https://github.com/fpagliughi/sockpp&#xff0c;最新发布版本为0.8.1&#xff0c;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 ~/.…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...