测试离线音频转文本模型Whisper.net的基本用法

这篇具有很好参考价值的文章主要介绍了测试离线音频转文本模型Whisper.net的基本用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  微信公众号“dotNET跨平台”中的文章《OpenAI的离线音频转文本模型Whisper的.NET封装项目》介绍了基于.net封装的开源语音辨识Whisper神经网络项目Whisper.net,其GitHub地址见参考文献2。本文基于Whisper.net帮助文档中的示例,测试Whisper.net的基本用法。
  创建基于.net6的Winform项目,然后在NuGet包管理器中搜索并安装Whisper.net包,如下图所示。注意,如果搜索Whisper,还会搜到一个名为WhisperNet的包,这个包跟Whisper.net的用法不同,也不能通用,注意不要安装错了。

测试离线音频转文本模型Whisper.net的基本用法
测试离线音频转文本模型Whisper.net的基本用法
  在测试程序之前,需要下载语言模型文件,可以从参考文献3中下载。根据参考文献1中的介绍,下载了ggml-large.bin、ggml-medium.bin、ggml-small.bin等3个支持中文的语言模型文件,并在测试程序中优先选用ggml-large.bin进行测试。
  除了语言模型文件,Whisper.net对音频文件要求比较严格,必须是采样率为16KHz的wav格式的音频文件,具体的文件格式要求参见下面列出的Whisper.net包中WaveParser类中的部分格式检查代码。

	 byte[] array = new byte[36];
     if (waveStream.Read(array, 0, 36) != 36)
     {
         throw new CorruptedWaveException("Invalid wave file, the size is too small.");
     }

     if (array[0] != 82 || array[1] != 73 || array[2] != 70 || array[3] != 70)
     {
         throw new CorruptedWaveException("Invalid wave file RIFF header.");
     }

     if (array[8] != 87 || array[9] != 65 || array[10] != 86 || array[11] != 69 || array[12] != 102 || array[13] != 109 || array[14] != 116 || array[15] != 32)
     {
         throw new CorruptedWaveException("Invalid wave file header.");
     }

     int num = BitConverter.ToInt32(array, 16);
     if (num < 0)
     {
         throw new CorruptedWaveException("Invalid wave format size.");
     }

     if (BitConverter.ToUInt16(array, 20) != 1)
     {
         throw new CorruptedWaveException("Unsupported wave file");
     }

     channels = BitConverter.ToUInt16(array, 22);
     sampleRate = BitConverter.ToUInt32(array, 24);
     if (sampleRate != 16000)
     {
         throw new NotSupportedWaveException("Only 16KHz sample rate is supported.");
     }

     bitsPerSample = BitConverter.ToUInt16(array, 34);
     if (bitsPerSample != 16)
     {
         throw new NotSupportedWaveException("Only 16 bits per sample is supported.");
     }

  本文采用两个音频文件进行测试,第一个是Whisper.net项目自带示例程序中的kennedy.wav文件,用于测试识别英文,另一个是在B站上下载古诗《春晓》的mp4视频文件(参考文献4),用于测试识别中文,通过参考文献5在线将其转换为指定采样率的wav文件,如下图所示。
测试离线音频转文本模型Whisper.net的基本用法
  测试程序的主要代码参考自Whisper.net项目中的示例程序Whisper.net.Tests中的代码。采用Whisper.net识别语音可以采用同步方式或异步方式,示例程序中都有相应的代码,本文采用同步方式的代码进行测试。主要代码如下所示:

	try
    {
        txtResult.Text = String.Empty;
        var segments = new List<SegmentData>();
        var encoderBegins = new List<EncoderBeginData>();
        using var factory = WhisperFactory.FromPath("ggml-large.bin");
        using var processor = factory.CreateBuilder()
                        .WithLanguage("auto")
                        .WithEncoderBeginHandler((e) =>
                        {
                            encoderBegins.Add(e);
                            return true;
                        })
                        .WithSegmentEventHandler(segments.Add)
                        .Build();

        using var fileReader = File.OpenRead(txtFilePath.Text);
        processor.Process(fileReader);

        foreach (var segment in segments)
        {
            txtResult.Text += "\r\n" + ($"New Segment: {segment.Start} ==> {segment.End} : {segment.Text}");
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

  程序运行效果如下面的截图所示:
测试离线音频转文本模型Whisper.net的基本用法
测试离线音频转文本模型Whisper.net的基本用法
  后续还会继续学习Whisper.net的用法。

参考文献:
[1]https://it.sohu.com/a/670010700_121124363
[2]https://github.com/sandrohanea/whisper.net
[3]https://huggingface.co/ggerganov/whisper.cpp/tree/main
[4]https://www.bilibili.com/video/BV19W411k7Bo/?spm_id_from=333.337.search-card.all.click&vd_source=db4a1f65c18549c78df3e9d579e59e19
[5]https://www.aconvert.com/cn/audio/文章来源地址https://www.toymoban.com/news/detail-490118.html

到了这里,关于测试离线音频转文本模型Whisper.net的基本用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 音频提取字幕开源模型-whisper

    Whisper 是一种通用的语音识别模型。它是在包含各种音频的大型数据集上训练的,也是一个可以执行多语言语音识别、语音翻译和语言识别的多任务模型。 地址:openai/whisper whisper-webui OpenAI 的 Whisper AI 模型的 HTML WebUI,可以转录和翻译音频。用户界面支持转录音频文件、麦克

    2024年02月10日
    浏览(41)
  • Whisper 音频转文字模型体验;语音实时转录文字工具

    参考: https://github.com/openai/whisper https://blog.csdn.net/weixin_44011409/article/details/127507692 安装Whisper 和ffmpeg (# on Ubuntu or Debian sudo apt update sudo apt install ffmpeg on Windows using Chocolatey (https://chocolatey.org/) choco install ffmpeg on Windows using Scoop (https://scoop.sh/) scoop install ffmpeg)

    2024年02月11日
    浏览(48)
  • .Net 使用OpenAI开源语音识别模型Whisper

    .Net 使用OpenAI开源语音识别模型 Whisper Open AI在2022年9月21日开源了号称其英文语音辨识能力已达到人类水准的 Whisper 神经网络,且它亦支持其它98种语言的自动语音辨识。 Whisper系统所提供的自动语音辨识(Automatic Speech Recognition,ASR)模型是被训练来运行语音辨识与翻译任务的

    2024年02月08日
    浏览(55)
  • Bark:基于转换器的文本到音频模型

    Bark是由Suno创建的一个基于转换器的文本到音频模型。Bark可以生成高度逼真的多语言语音以及其他音频,包括音乐、背景噪音和简单的音效。该模型还可以产生非语言交流,如大笑、叹息和哭泣。为了支持研究社区,我们正在提供对预先训练的模型检查点的访问,以便进行推

    2024年02月10日
    浏览(49)
  • 《AI上字幕》基于openAI研发的whisper模型,语音(视频)一键转文本/字幕/带时间轴/支持多语言/自带翻译《桌面版教程》

    OpenAI的chatGPT非常火爆,其实OpenAI旗下的另一个模型实力也十分强大,它就是开源免费的Whisper语音转文本模型,目前为止它是较为顶尖的语音转文本模型 当前github上也有许多出色的开发者根据此模型开发出桌面版语音转文字应用。较为出色的分别是Buzz和WhisperDesktop 支持将多种

    2023年04月19日
    浏览(51)
  • HslCommunication测试工具的基本用法

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 我们在实际开发过程中,在操作上位机的时候,其中绕不开的一环就是通讯功能。本文针对的是PLC原始的通讯,无论是java还是.net都已经继承了很多功能接口。但今天想要谈的是最原始的工具HslCommunica

    2024年02月01日
    浏览(45)
  • Vim 是一款强大的文本编辑器,广泛用于 Linux 和其他 Unix 系统。以下是 Vim 的一些基本用法

    Vim 是一款强大的文本编辑器,广泛用于 Linux 和其他 Unix 系统。以下是 Vim 的一些基本用法: 打开文件: 基本移动: 使用箭头键或 h , j , k , l 分别向左、下、上、右移动。 Ctrl + f : 向前翻页。 Ctrl + b : 向后翻页。 gg : 移动到文件开头。 G : 移动到文件末尾。 编辑文本: i : 进

    2024年01月17日
    浏览(51)
  • 使用whisper生成音频字幕——前期准备

    最近我们要写一个把没有字幕的音频生成字幕的APP,前期调研的很多方式,使用whisper可以实现,这篇文章就是说一些前期准备工作,我就不自己再写一篇了,参考以下两篇文章就行了。 whisper安装下载和python环境的准备 安装过程中踩过的坑

    2024年02月11日
    浏览(44)
  • 【精通性能优化:解锁JMH微基准测试】一基本用法

    1. 什么是JMH JMH是Java Micro Benchmark Harness的简写,是专门用于代码微基准测试的工具集。 JMH由实现Java虚拟你的团队开发,现代JVM已经变的越来越智能,在Java文件的编译阶段、类的加载阶段,以及运行阶段都可能进行了不同程度的优化,因此开发者编写的代码未必会像自己所预

    2024年02月12日
    浏览(39)
  • 使用Python轻松识别音频中文字(Whisper)

    在开会或是讨论问题的时候,我们总有一些内容需要记录下来。但由于各种原因,我们无法做到全面细致的记录。事后我们可能需要补充这些细节性内容,而回放视频或是录音费时费力,这时候语音识别可以帮助我们轻松解决这一痛点。目前,常见的语音识别服务以收费的居

    2024年02月09日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包