开源ASR服务器vosk
概述
近几年由于AI的迅速发展,语音相关的自然语言处理NLP项目也变多了,新的技术也越来越成熟,其中TTS(语音生成)和ASR(语音识别)是NLP中非常重要的环节。
今天我们介绍一个开源的ASR项目vosk,以及vosk的简单应用方法。
Vosk是开源的语音识别工具包。Vosk支持的事情包括:
1. 支持十九种语言 - 中文,英语,印度英语,德语,法语,西班牙语,葡萄牙语,俄语,土耳其语,越南语,意大利语,荷兰人,加泰罗尼亚语,阿拉伯, 希腊语, 波斯语, 菲律宾语,乌克兰语, 哈萨克语。
2. 移动设备上脱机工作-Raspberry Pi,Android,iOS。
3. 使用简单的 pip3 install vosk 安装。
4. 每种语言的手提式模型只有是50Mb, 但还有更大的服务器模型可用。
5. 提供流媒体API,以提供最佳用户体验(与流行的语音识别python包不同)。
6. 还有用于不同编程语言的包装器-java / csharp / javascript等。
7. 可以快速重新配置词汇以实现最佳准确性。
8. 支持说话人识别。
环境
centos:CentOS release 7.0 (Final)或以上版本
VOSK服务器
vosk服务器的部署非常简单,有发布好的docker镜像可以直接使用。
使用docker启动VOSK服务器,选择中文模型kaldi-cn。
docker run -d -p 2700:2700 alphacep/kaldi-cn:latest
测试
客户端的连接支持多种方式,包括grpc、mqtt、webrtc、websocket等,我们可以通过git上的源代码查找到合适的样例。
下载vosk-server源代码
git clone https://github.com/alphacep/vosk-server cd vosk-server/websocket ./test.py test1.wav
注意事项:语音文件test1.wav的格式必须8khz 16bit mono PCM(8000采样率,16位采样精度,单声道,pcm)。
可以在屏幕上看到服务器返回的识别结果,结果是json格式。
{
"result" : [{
"conf" : 0.993990,
"end" : 0.510000,
"start" : 0.090000,
"word" : "语音"
}, {
"conf" : 0.936422,
"end" : 1.080000,
"start" : 0.510000,
"word" : "测试"
}, {
"conf" : 0.821353,
"end" : 1.950000,
"start" : 1.350000,
"word" : "天天"
}, {
"conf" : 0.866125,
"end" : 2.190000,
"start" : 1.950000,
"word" : "是"
}, {
"conf" : 0.657369,
"end" : 2.400000,
"start" : 2.190000,
"word" : "二"
}, {
"conf" : 0.657369,
"end" : 2.610000,
"start" : 2.400000,
"word" : "零"
}, {
"conf" : 0.651791,
"end" : 2.820000,
"start" : 2.610000,
"word" : "二"
}, {
"conf" : 0.994422,
"end" : 3.180000,
"start" : 2.820000,
"word" : "一年"
}, {
"conf" : 1.000000,
"end" : 3.600000,
"start" : 3.180000,
"word" : "八月"
}, {
"conf" : 0.985209,
"end" : 3.930000,
"start" : 3.600000,
"word" : "二十"
}, {
"conf" : 0.985209,
"end" : 4.410000,
"start" : 3.930000,
"word" : "五号"
}],
"text" : "语音 测试 天天 是 二 零 二 一年 八月 二十 五号"
}
总结
从vosk中文库的识别结果看,还有不少的问题存在,包括识别率,分词,分段等等,和目前市面上的商业ASR引擎还是有差距的。
当然,vosk的识别库模型也支持自定义和优化,有兴趣的同学可以去官网深入的了解一下。
vosk官网:https://alphacephei.com
OK,今天我们对vosk的介绍到此结束。
空空如常
求真得真
开源ASR服务器vosk概述近几年由于AI的迅速发展,语音相关的自然语言处理NLP项目也变多了,新的技术也越来越成熟,其中TTS(语音生成)和ASR(语音识别)是NLP中非常重要的环节。今天我们介绍一个开源的ASR项目vosk,以及vosk的简单应用方法。Vosk是开源的语音识别工具包。Vosk支持的事情包括:1.支持十九种语言 - 中文,英语,印度英语,德语,法语,西班牙语,葡萄牙语,俄语,土耳其语,越南语,意大利语,荷兰人,加泰罗尼亚语,阿拉伯, 希腊语, 波斯语, 菲律宾语,乌克兰语, 哈萨克语。2.移动设备上脱机工作-Raspberry Pi,Android,iOS。3.使用简单的 pip3 install vosk 安装。4.每种语言的手提式模型只有是50Mb, 但还有更大的服务器模型可用。5.提供流媒体API,以提供最佳用户体验(与流行的语音识别python包不同)。6.还有用于不同编程语言的包装器-java / csharp / javascript等。7.可以快速重新配置词汇以实现最佳准确性。8.支持说话人识别。
环境centos:CentOS release 7.0 (Final)或以上版本
VOSK服务器vosk服务器的部署非常简单,有发布好的docker镜像可以直接使用。使用docker启动VOSK服务器,选择中文模型kaldi-cn。docker run -d -p 2700:2700 alphacep/kaldi-cn:latest
测试客户端的连接支持多种方式,包括grpc、mqtt、webrtc、websocket等,我们可以通过git上的源代码查找到合适的样例。下载vosk-server源代码git clone https://github.com/alphacep/vosk-servercd vosk-server/websocket./test.py test1.wav
注意事项:语音文件test1.wav的格式必须8khz 16bit mono PCM(8000采样率,16位采样精度,单声道,pcm)。
可以在屏幕上看到服务器返回的识别结果,结果是json格式。{ "result" : [{ "conf" : 0.993990, "end" : 0.510000, "start" : 0.090000, "word" : "语音" }, { "conf" : 0.936422, "end" : 1.080000, "start" : 0.510000, "word" : "测试" }, { "conf" : 0.821353, "end" : 1.950000, "start" : 1.350000, "word" : "天天" }, { "conf" : 0.866125, "end" : 2.190000, "start" : 1.950000, "word" : "是" }, { "conf" : 0.657369, "end" : 2.400000, "start" : 2.190000, "word" : "二" }, { "conf" : 0.657369, "end" : 2.610000, "start" : 2.400000, "word" : "零" }, { "conf" : 0.651791, "end" : 2.820000, "start" : 2.610000, "word" : "二" }, { "conf" : 0.994422, "end" : 3.180000, "start" : 2.820000, "word" : "一年" }, { "conf" : 1.000000, "end" : 3.600000, "start" : 3.180000, "word" : "八月" }, { "conf" : 0.985209, "end" : 3.930000, "start" : 3.600000, "word" : "二十" }, { "conf" : 0.985209, "end" : 4.410000, "start" : 3.930000, "word" : "五号" }], "text" : "语音 测试 天天 是 二 零 二 一年 八月 二十 五号"}
总结从vosk中文库的识别结果看,还有不少的问题存在,包括识别率,分词,分段等等,和目前市面上的商业ASR引擎还是有差距的。当然,vosk的识别库模型也支持自定义和优化,有兴趣的同学可以去官网深入的了解一下。vosk官网:https://alphacephei.comOK,今天我们对vosk的介绍到此结束。
空空如常求真得真
开源ASR服务器vosk的更多相关文章
- SIP协议&开源SIP服务器搭建和客户端安装
1. SIP SIP 是一个应用层的控制协议,可以用来建立,修改,和终止多媒体会话,例如Internet电话 SIP在建立和维持终止多媒体会话协议上,支持五个方面: 1) 用户定位: 检查终端用户 ...
- 部署rfc5766-turn-server--谷歌推荐的开源穿透服务器 [复制链接]
谷歌推荐的开源穿透服务器,包含trun和stun服务,主页:https://code.google.com/p/rfc5766-turn-server/(个人觉得可以利用这个来进一步搭建VPN,有兴趣 ...
- 搭建自己的SIP服务器:开源sip服务器opensips的搭建及终端TwInkle的使用
搭建自己的SIP服务器:开源sip服务器opensips的搭建及终端TwInkle的使用 分类: linux编译相关2013-01-05 21:38 17983人阅读 评论(24) 收藏 举报 先下载 ...
- Windows下免费、开源邮件服务器hMailServer
Windows下免费.开源邮件服务器hMailServer 一.Windows下搭建免费.开源的邮件服务器hMailServer 二.邮件服务器hMailServer管理工具hMailServer A ...
- 开源流媒体服务器SRS学习笔记(1) - 安装、推流、拉流
SRS(Simple RTMP Server) 是国人写的一款非常优秀的开源流媒体服务器软件,可用于直播/录播/视频客服等多种场景,其定位是运营级的互联网直播服务器集群. 一.安装 官网提供了3种安 ...
- Leaf - 一个由 Go 语言编写的开发效率和执行效率并重的开源游戏服务器框架
转自:https://toutiao.io/posts/0l7l7n/preview Leaf 游戏服务器框架简介 Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源游戏 ...
- NodeJS版本EasyDarwin开源流媒体服务器开发心得
title: Node版本EasyDarwin开发心得 date: 2018-03-27 22:46:15 tags: 年后着手Node版本EasyDarwin的开发工作,截止到今天2018年03月2 ...
- EasyDarwin开源流媒体服务器Golang版本:服务端录像功能发布
EasyDarwin开源流媒体服务器(www.easydarwin.org)现在使用Go版本实现了.最新的代码提交,已经支持了推流(或者拉流)的同时进行本地存储. 本地存储的原理,是在推流的同时启动f ...
- EasyDarwin开源流媒体服务器Golang版本:拉转推功能之拉流实现方法
EasyDarwin开源流媒体服务器(www.easydarwin.org),拉转推是一个很有意义的功能,它可将一个独立的RTSP数据源"拉"到服务器,再通过转发协议转发给多个客户 ...
随机推荐
- Shell-05-函数
函数 函数定义 shell中函数的定义格式如下 [ function ] funname [()] { action; [return int;] } 说明: 1.可以带function fun() ...
- Vue系列-04-项目1
路飞学城项目 项目搭建 创建项目目录 # cd 项目目录 # vue init webpack luffy 效果 根据上面的提示,我们已经把vue项目构建好了,接下来我们可以在vscode编辑器中把项 ...
- GO语言的基本语法之变量,常量,条件语句,循环语句
GO语言的基本语法之变量,常量,条件语句,循环语句 作为慕课网得笔记自己看 定义变量: 使用var关键字 var a, b, C bool var s1, s2 string = "hell ...
- SpringCloud-技术专区-从源码层面让你认识Feign工作流程和运作机制
Feign工作流程源码解析 什么是feign:一款基于注解和动态代理的声明式restful http客户端. 原理 Feign发送请求实现原理 微服务启动类上标记@EnableFeignClients ...
- Python对系统数据进行采集监控——psutil
大家好,我是辰哥- 今天给大家介绍一个可以获取当前系统信息的库--psutil 利用psutil库可以获取系统的一些信息,如cpu,内存等使用率,从而可以查看当前系统的使用情况,实时采集这些信息可以达 ...
- OSPF的Router-Id
一.实验拓扑 二.实验编址 三.实验步骤: 1.设置PC的IP等信息 2.启动设备(全选) 3.根据实验编址配置路由器端口IP(先不设置lookback端口) R1: R2: R3: R4: 看一下r ...
- NOIP 模拟 $11\; \rm biology$
题解 首先对 \(a\) 离散化,则可推出转移方程 \[dp_{i,j}=\max\{{dp_{{i^{'}},{j^{'}}}+|i-i^{'}|+|j-j^{'}|}\}+b_{i,j} \;\; ...
- 在npm Vue单页面的环境下,兄弟组件之间通信Bus
参考1:https://www.cnblogs.com/wangruifang/p/7772631.html 参考2:https://www.jianshu.com/p/b3d09c6c87bf 在m ...
- SpringMVC的拦截器和过滤器的区别
一 简介 (1)过滤器: 依赖于servlet容器.在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次.使用过滤器的目的是用来做一些过滤操作,获取我们 ...
- .net core api 对于FromBody的参数验证
前言 在framework的mvc中,经常会使用 Model.State . ModelState.IsValid 配合着特性进行参数验证,通过这种方式可以降低controller的复杂度,使用方便. ...
