jdk21使用Vosk实现语音文字转换,免费的语音识别

1.下载vosk的model

vosk官网:https://alphacephei.com/vosk/models
我这里使用较小的vosk-model-small-cn-0.22

2.添加相关pom文件

 <!-- 获取音频信息 --><dependency><groupId>org</groupId><artifactId>jaudiotagger</artifactId><version>2.0.3</version></dependency><!-- 语音识别 --><dependency><groupId>net.java.dev.jna</groupId><artifactId>jna</artifactId><version>5.16.0</version></dependency><dependency><groupId>com.alphacephei</groupId><artifactId>vosk</artifactId><version>0.3.45</version></dependency>

3.代码

添加model和使用的音频,我这里用的wav格式的,不同格式的参数会不一样


import org.vosk.LibVosk;
import org.vosk.LogLevel;
import org.vosk.Model;
import org.vosk.Recognizer;import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.UnsupportedAudioFileException;
import java.io.*; public class testVosk {public static void main(String[] argv) throws IOException, UnsupportedAudioFileException {LibVosk.setLogLevel(LogLevel.DEBUG);try (Model model = new Model("E:\\srk\\bigData\\vosk-model-small-cn-0.22");InputStream fis = AudioSystem.getAudioInputStream(new BufferedInputStream(new FileInputStream("C:\\Users\\Administrator\\Downloads\\mdhs1-5ob2k.wav")));Recognizer recognizer = new Recognizer(model, 16000)) {int bytes;byte[] b = new byte[4096];while ((bytes = fis.read(b)) >= 0) {if (recognizer.acceptWaveForm(b, bytes)) {System.out.println(recognizer.getResult());} else {System.out.println(recognizer.getPartialResult());}}String result = recognizer.getFinalResult();System.out.println(result);}}
}

4.可能遇到的问题

1.乱码,我搞了半天(捂脸)
因为jdk17以后编号的模式改了,所以在网上找了各种设置编码的格式都没有生效。
比如jvm设置 -Dfile.encoding=UTF-8都没生效。

-Dfile.encoding=UTF-8

jdk17以前的还是正常的。
解决方法:

  1. win系统控制面板找到“区域与语言设置”

  2. 在弹出框中选择更改系统区域设置
    在这里插入图片描述

  3. 勾选beta使用utf-8
    在这里插入图片描述

5.相关资料

  1. gitcode相关api

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

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

相关文章

如何一键安装所有Python项目的依赖!

在开发项目时&#xff0c;常常需要在多个环境中安装各种依赖。对开发者来说&#xff0c;每次手动一个个安装这些依赖是不是很麻烦&#xff1f;&#x1f605; 其实有个超简单的办法&#xff01;只需要一个脚本&#xff0c;就能快速解决问题&#xff01;&#x1f4a1; 这就是我们…

Blender配置渲染设置并输出动画

在Blender中&#xff0c;渲染设置和渲染动画的选项位于不同的面板中。以下是具体步骤&#xff1a; 渲染设置 渲染设置用于配置输出格式、分辨率、帧率等参数。 打开右侧的 属性面板&#xff08;按 N 键可切换显示&#xff09;。 点击 “输出属性” 选项卡&#xff08;图标是…

C++修炼:string类的使用

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》、《C修炼之路》 欢迎点赞&#xff0c;关注&am…

【go微服务】如何快速掌握grpc开发

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

【区块链 + 文化版权】基于 FISCO BCOS 的方言大数据语料库 | FISCO BCOS 应用案例

苏州喵自在区块链科技有限公司打造的基于FISCO BCOS 的粤语大数据语料库&#xff0c; 旨在利用区块链技术保护和发展粤语文化遗产。该项目利用区块链的不可篡改性、分布式存储、智能合约和激励机制等特性&#xff0c; 为保护非物质文化遗产&#xff0c; 加强粤语研究与教育和开…

大模型在支气管扩张预测及治疗方案制定中的应用研究

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与方法 1.3 国内外研究现状 二、大模型技术概述 2.1 大模型的基本原理与架构 2.2 适用于支气管扩张预测的大模型类型及特点 2.3 大模型在医疗领域的应用现状与优势 三、支气管扩张的相关医学知识 3.1 支气管扩张的病因…

亚马逊云科技提供完全托管的DeepSeek-R1模型

近日&#xff0c;亚马逊云科技宣布在Amazon Bedrock上线完全托管的DeepSeek-R1模型。DeepSeek是首个登陆Amazon Bedrock的国产大模型&#xff0c;自今年1月底推出以来&#xff0c;已有数千客户使用Amazon Bedrock的自定义模型导入功能部署了DeepSeek-R1模型。 DeepSeek在过去几…

二叉树、排序算法与结构图

二叉树、排序算法与数据库 二叉树 二叉树的性质 节点数与深度的关系&#xff1a;深度为 k k k的二叉树&#xff0c;最多有 2 k − 1 2^k - 1 2k−1个节点。例如&#xff0c;深度为 3 3 3的二叉树&#xff0c;最多有 2 3 − 1 7 2^3 - 1 7 23−17个节点。叶子节点与度为2节…

vmwaretools解压失败|vmware tools distrib cannot mkdir read only file system|bug汇总

最简单的一条路线&#xff1a;你的解压命令用sudo了吗&#xff1f; 这个方法不能解决的话就看下面内容。本文提供给你全过程思路。 如需转载&#xff0c;标记出处 背景&#xff1a; 之前虚拟机和主机的复制黏贴还能用&#xff0c;今天突然用不了&#xff0c;重新下载安装包&am…

jEasyUI 创建自定义视图

jEasyUI 创建自定义视图 引言 jEasyUI 是一款流行的 jQuery UI 组件库&#xff0c;它提供了丰富的 UI 组件和交互效果&#xff0c;极大地简化了 Web 开发的复杂度。在 jEasyUI 中&#xff0c;我们可以通过自定义视图来扩展其功能&#xff0c;满足特定的业务需求。本文将详细介…

Spring MVC配置详解:从历史到实战

文章目录 一、Java Web的发展历程1.Model I与Model II开发模式&#xff08;1&#xff09; Model I开发模式&#xff08;2&#xff09;Model II开发模式 2.MVC设计模式Spring MVC本质MVC工作流程 二、Spring MVC快速入门实战1.环境搭建步骤&#xff08;1&#xff09;创建Maven W…

老是忘记package.json,备忘一下 webpack 环境下 Vue Cli 和 Vite 命令行工具对比

Vue 2.X webpack 环境下 Vue Cli 的命令 "scripts": {"dev": "vue-cli-service serve","prod": "vue-cli-service serve --mode production","build:dev": "vue-cli-service build --mode development"…

【树莓派Pico FreeRTOS】-Mutex(互斥体)

Mutex(互斥体) 文章目录 Mutex(互斥体)1、硬件准备2、软件准备3、FreeRTOS的Mutex介绍4、完整示例RP2040 由 Raspberry Pi 设计,具有双核 Arm Cortex-M0+ 处理器和 264KB 内部 RAM,并支持高达 16MB 的片外闪存。 广泛的灵活 I/O 选项包括 I2C、SPI 和独特的可编程 I/O (P…

sock文件介绍--以mysql.sock为例

socket 文件 (.sock) 通常是临时文件。 MySQL 的 socket 文件是临时文件&#xff0c;只在服务运行时有效。可通过配置文件更改 socket 文件的存放路径&#xff0c;常见路径如 /tmp/mysql.sock 或指定自定义目录。如果连接出现问题&#xff0c;可能需要检查 MySQL 服务状态或路…

Docker应用部署之mysql篇(day5)

文章目录 前言一、问题描述二、解决方案1. 搜索 MySQL 镜像2. 拉取 MySQL 镜像3. 创建并运行 MySQL 容器参数说明&#xff1a; 4. 验证容器是否运行5. 进入 MySQL 容器 三、总结 前言 在日常开发和部署中&#xff0c;MySQL 是最常用的关系型数据库之一。借助 Docker&#xff0…

【Elasticsearch基础】基本核心概念介绍

Elasticsearch作为当前最流行的分布式搜索和分析引擎&#xff0c;其强大的功能背后是一套精心设计的核心概念体系。本文将深入解析Elasticsearch的五大核心概念&#xff0c;帮助开发者构建坚实的技术基础&#xff0c;并为高效使用ES提供理论支撑。 1 索引&#xff08;Index&…

Qt在ARM中,如何使用drmModeObjectSetProperty 设置 Plane 的 zpos 值

在 Qt 中直接使用 drmModeObjectSetProperty 设置 Plane 的 zpos 值需要结合 Linux DRM/KMS API 和 Qt 的底层窗口系统&#xff08;如 eglfs 平台插件&#xff09;。以下是详细步骤和代码示例&#xff1a; 1. 原理说明 DRM/KMS 基础&#xff1a; Plane&#xff1a;负责图层合成…

MFC添加免费版大漠3.1233

先创建一个MFC工程&#xff0c; 添加dm.dll 方法一&#xff1a;通过类向导-添加类-类型库中的MFC类-文件&#xff0c;选择dm.dll&#xff0c;如果没有"添加类型库中的MFC类"选项就用方法二添加 方法二&#xff1a;添加-新建项-MFC-Active或TypeLib-实现接口位置选…

【Linux】应用层协议 HTTP

应用层协议 HTTP 一. HTTP 协议1. URL 地址2. urlencode 和 urldecode3. 请求与响应格式 二. HTTP 请求方法1. GET 和 POST (重点) 三. HTTP 状态码四. HTTP 常见报头五. 手写 HTTP 服务器 HTTP&#xff08;超文本传输协议&#xff09;是一种应用层协议&#xff0c;用于在万维网…

【活动回顾】StarRocks Singapore Meetup #2 @Shopee

3 月 13 日&#xff0c;StarRocks 社区在新加坡成功举办了第二场 Meetup 活动&#xff0c;主题为“Empowering Customer-Facing Analytics”。本次活动在 Shopee 新加坡办公室举行&#xff0c;吸引了来自 Shopee、Grab 和 Pinterest 的专家讲师以及 50 多位参会者。大家围绕电商…