Java 离线语音识别实现语音转文字

这篇具有很好参考价值的文章主要介绍了Java 离线语音识别实现语音转文字。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

依赖导入

   <!-- 获取音频信息 -->
        <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.7.0</version>
        </dependency>
        <dependency>
            <groupId>com.alphacephei</groupId>
            <artifactId>vosk</artifactId>
            <version>0.3.32</version>
        </dependency>

model下载
我们需要实现离线语音识别,那么就得将模型下载到本地电脑。下载地址为官网的 Models 模块: https://alphacephei.com/vosk/models
我们直接找到 Chinese 分类,这里有 2 个模型
java语音转文字,语音识别,java,语音识别
将下载的语言模型包,在下面代码中引入

Model model = new Model("下载模型包路径");//语言模型

代码


import com.example.speechrecognition.utils.CommonUtils;
import org.jaudiotagger.audio.AudioFile;
import org.jaudiotagger.audio.wav.WavFileReader;
import org.vosk.LibVosk;
import org.vosk.LogLevel;
import org.vosk.Model;
import org.vosk.Recognizer;

import javax.sound.sampled.AudioSystem;
import java.io.*;

/**
 * @Description TODO
 * @ClassName VoskAudiToTextTests
 * @Author JiangHuanXiang
 * @Date 2023/6/3 10:42
 * @Version 1.0
 **/
public class VoskAudiToTextDemo {

    public static void main(String[] args) {
        LibVosk.setLogLevel(LogLevel.DEBUG);
        try {
            String modePath = CommonUtils.getModelFileUrl("voskmodel/model_small_cn_0.22").getPath();
            Model model = new Model(modePath);//语言模型

            String filepath = CommonUtils.getModelFileUrl("Speech/01.wav").getPath();
            File file = new File(filepath);
            InputStream ais = AudioSystem.getAudioInputStream(new BufferedInputStream(new FileInputStream(file)));


            Recognizer recognizer = new Recognizer(model, getSampleRate(file));

            int nbytes;
            byte[] b = new byte[4096];
            while ((nbytes = ais.read(b)) >= 0) {
                recognizer.acceptWaveForm(b, nbytes);
            }

            System.out.println("结果:"+recognizer.getFinalResult());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取音频文件的采样率
     */
    private static Float getSampleRate(File file) throws Exception {
        WavFileReader fileReader = new WavFileReader();
        AudioFile audioFile = fileReader.read(file);
        String sampleRate = audioFile.getAudioHeader().getSampleRate();
        return Float.parseFloat(sampleRate);
    }



}

CommonUtils

import java.io.File;
import java.net.URL;

/**
 * @Description TODO
 * @ClassName CommonUtils
 * @Author JiangHuanXiang
 * @Date 2023/6/3 12:14
 * @Version 1.0
 **/
public class CommonUtils {
    public static File getModelFileUrl(String filePath) {
        ClassLoader classLoader = CommonUtils.class.getClassLoader();
        URL resourceUrl = classLoader.getResource(filePath);
        if (resourceUrl != null) {
            return new File(resourceUrl.getFile());
        } else {
            throw new RuntimeException("Failed to locate model file: " + filePath);
        }
    }
}

注意:以上代码只支持.wav格式的音频文件

测试
音频文件:

java语音转文字,语音识别,java,语音识别文章来源地址https://www.toymoban.com/news/detail-743308.html

到了这里,关于Java 离线语音识别实现语音转文字的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【语音识别】落地实现--离线智能语音助手

    参考:基于python和深度学习(语音识别、NLP)实现本地离线智能语音控制终端(带聊天功能和家居控制功能) 基于V3S的语音助手(三)移植pocketsphnix唤醒 基于V3S的语音助手(二)移植pyaudio到开发板 基于V3S的语音助手(一)python3的编译和安装(该版本解决zlib readline可

    2024年03月09日
    浏览(16)
  • Java与智能语音识别:实现准确的语音识别与转换

    Java与智能语音识别是指利用Java编程语言和智能语音处理技术实现准确的语音识别和转换。下面是一个详细的教程,介绍了如何使用Java构建智能语音识别系统: 1. 音频数据采集:    - 使用Java提供的音频采集库(如Java Sound API)获取音频数据流。    - 连接麦克风设备或读取

    2024年02月08日
    浏览(15)
  • 使用H5+app在安卓5.1离线环境实现文字转语音

    在Vue中实现中文文字转语音的方法可以使用HTML5的SpeechSynthesis API,同时需要考虑到在H5+ App里面的离线环境。 在配置文件中正确引入plus库:   在Vue组件中使用SpeechSynthesis API实现中文文字转语音的功能:  

    2024年04月25日
    浏览(7)
  • windows11 下使用 modelscope docker环境 实现 离线语音转文字

    昨天看视频 我们做了个能对话的AI派蒙,免费给大家玩! 发现阿里有一个语音转文字的模型(paraformer),之前处理这种需求一直都是直接调用服务商提供好的API接口 突然想尝试一下本地搭建,虽然和直接调用API 没啥区别(都不知道实现细节),但是这是本地化运行,可以在内网环境运

    2024年02月02日
    浏览(12)
  • 【项目管理】Java OCR实现图片文字识别

    系统:Win10 Java:1.8.0_333 IDEA:2020.3.4 最近在看外国漫画的时候,发现有些漫画没有汉化的翻译,这哪看得懂。正想把那些日语输入到有道翻译一下,发现日文不会输。正巧之前有接触关于OCR的项目,所以便想用Java做一个小工具,实现图片的文字识别功能,于是我便开始了项目

    2024年02月02日
    浏览(12)
  • 免费离线语音识别软件开发工具包(SDK):实现高效准确的语音识别

    语音识别技术在当今信息时代扮演着重要的角色,为用户提供了更加便捷和自然的交互方式。然而,传统的语音识别方案通常需要依赖云服务器进行语音数据的处理,这可能会涉及到隐私问题和网络延迟。为了解决这些问题,免费离线语音识别软件开发工具包(SDK)应运而生

    2024年02月04日
    浏览(16)
  • 【实操】Java+百度ocr,实现图片识别文字小工具

    图片识别文字,咱用java也可以 通过 java+百度ocr ,实现一个截图或上传图片, 图片识别文字的小工具 。并通过 exe4j工具 将jar包封装成exe可执行桌面文件,方便使用及学习。 一位特别的老友即将 在2023年10月26日 年满 30周岁 ,愿 平安喜乐 公众号:【JavaDog程序狗】 关注公众号

    2024年02月08日
    浏览(19)
  • vue项目,实现语音识别文字,前后端交互

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 最近实现一个录音上传功能,并且识别语音转为汉字。 js-audio-recorder是基于第三方的vue插件,实现录音,播放等功能。 代码如下(示例): 代码如下(示例): 该处使用的url网络请求的数据。 前端调

    2024年02月12日
    浏览(14)
  • 利用Java实现的图片中文字识别,你学会了吗?

    一. 背景 今天有粉丝向波哥提出了这样一个疑问:给出一张图片,如何利用Java中的技术获取图片中的文字信息?针对这个问题,你有么有解决办法呢?如果你没有想到好的解决思路,也不用怕,看波哥来给你解决这个问题! 二. 解决思路 首先说到读取文件,我们耳熟能详的

    2024年02月11日
    浏览(15)
  • python使用VOSK实现离线语音识别(中文普通话)

    目标:一个代码简单,离线,可直接使用,常用语句准确率还不错,免费的,普通话语音转文本的工具 几番对比下来,VSOK基本满足我的需求,记录一下。 环境 windows 10 / python3.8.10 s1 安装 vosk s2 下载模型 两个模型,一个很小,文件名中带有small字样,另一个就很大了,就我自

    2024年02月11日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包