C#使用whisper.net实现语音识别(语音转文本)

目录

介绍

效果

输出信息

项目

代码

下载


介绍

github地址:https://github.com/sandrohanea/whisper.net

Whisper.net. Speech to text made simple using Whisper Models

模型下载地址:https://huggingface.co/sandrohanea/whisper.net/tree/main/classic

效果

输出信息

whisper_init_from_file_no_state: loading model from 'ggml-small.bin'

whisper_model_load: loading model

whisper_model_load: n_vocab = 51865

whisper_model_load: n_audio_ctx = 1500

whisper_model_load: n_audio_state = 768

whisper_model_load: n_audio_head = 12

whisper_model_load: n_audio_layer = 12

whisper_model_load: n_text_ctx = 448

whisper_model_load: n_text_state = 768

whisper_model_load: n_text_head = 12

whisper_model_load: n_text_layer = 12

whisper_model_load: n_mels = 80

whisper_model_load: ftype = 1

whisper_model_load: qntvr = 0

whisper_model_load: type = 3

whisper_model_load: mem required = 743.00 MB (+ 16.00 MB per decoder)

whisper_model_load: adding 1608 extra tokens

whisper_model_load: model ctx = 464.68 MB

whisper_model_load: model size = 464.44 MB

whisper_init_state: kv self size = 15.75 MB

whisper_init_state: kv cross size = 52.73 MB

00:00:00->00:00:20: 皇鶴楼,崔昊,西人已成皇鶴去,此地空于皇鶴楼,皇鶴一去不复返,白云千载空悠悠。

00:00:20->00:00:39: 青川莉莉汉阳树,方草七七英五周,日暮相关何处事,燕泊江上世人愁。

项目

代码

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.IO;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using Whisper.net;

using static System.Net.Mime.MediaTypeNames;

namespace C_使用whisper.net实现语音转文本

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

string fileFilter = "*.wav|*.wav";

string wavFileName = "";

WhisperFactory whisperFactory;

WhisperProcessor processor;

private async void button2_Click(object sender, EventArgs e)

{

if (wavFileName == "")

{

return;

}

try

{

button2.Enabled = false;

using var fileStream = File.OpenRead(wavFileName);

await foreach (var result in processor.ProcessAsync(fileStream))

{

Console.WriteLine($"{result.Start}->{result.End}: {result.Text}\r\n");

txtResult.Text += $"{result.Start}->{result.End}: {result.Text}\r\n";

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

finally

{

button2.Enabled = true;

}

}

private void Form1_Load(object sender, EventArgs e)

{

whisperFactory = WhisperFactory.FromPath("ggml-small.bin");

processor = whisperFactory.CreateBuilder()

.WithLanguage("zh")//.WithLanguage("auto")

.Build();

wavFileName = "085黄鹤楼.wav";

txtFileName.Text = wavFileName;

}

private void button1_Click(object sender, EventArgs e)

{

OpenFileDialog ofd = new OpenFileDialog();

ofd.Filter = fileFilter;

if (ofd.ShowDialog() != DialogResult.OK) return;

txtResult.Text = "";

wavFileName = ofd.FileName;

txtFileName.Text = wavFileName;

}

}

}

复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Whisper.net;
using static System.Net.Mime.MediaTypeNames;

namespace C_使用whisper.net实现语音转文本
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string fileFilter = "*.wav|*.wav";
        string wavFileName = "";
        WhisperFactory whisperFactory;
        WhisperProcessor processor;
        private async void button2_Click(object sender, EventArgs e)
        {
            if (wavFileName == "")
            {
                return;
            }

            try
            {
                button2.Enabled = false;
                using var fileStream = File.OpenRead(wavFileName);
                await foreach (var result in processor.ProcessAsync(fileStream))
                {
                    Console.WriteLine($"{result.Start}->{result.End}: {result.Text}\r\n");
                    txtResult.Text += $"{result.Start}->{result.End}: {result.Text}\r\n";
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                button2.Enabled = true;
            }

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            whisperFactory = WhisperFactory.FromPath("ggml-small.bin");

            processor = whisperFactory.CreateBuilder()
               .WithLanguage("zh")//.WithLanguage("auto")
               .Build();

            wavFileName = "085黄鹤楼.wav";
            txtFileName.Text = wavFileName;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = fileFilter;
            if (ofd.ShowDialog() != DialogResult.OK) return;

            txtResult.Text = "";

            wavFileName = ofd.FileName;
            txtFileName.Text = wavFileName;
        }
    }
}

下载

源码下载

相关推荐
zandy10117 小时前
2026年,AI Agent搜索Skill推荐已经离不开底层架构
大数据·人工智能·架构
魔术师Dix7 小时前
StartGame:Unity TDD 外部工程指南
学习·游戏·unity·c#·测试驱动开发
小弥儿7 小时前
GitHub今日热榜 | 2026-07-31:AI Agent工作流共享赛道升温
人工智能·学习·github
想你依然心痛7 小时前
HarmonyOS 5.0智慧农业开发实战:构建分布式农业物联网与区块链农产品溯源系统
人工智能·分布式·物联网·区块链·智慧农业·harmonyos·开发实战
Kevin Wang7277 小时前
华为昇腾910B部署手册——课堂质量诊断
人工智能·华为
徐礼昭|商派软件市场负责人8 小时前
腾讯云企业版WorkBuddy官方代理商“商派”ShopeX:零售数智化进入”对话即操作”时代
人工智能·腾讯云·零售·workbuddy
大霞上仙9 小时前
trae solo模式demo--用例管理平台
人工智能
2601_9583529015 小时前
接上USB,焊上麦,通话瞬间安静——WX-0813如何用AI降噪+100dB消回音,把嘈杂通话变成“金子“般清晰
人工智能·算法·语音识别·硬件开发·语音模块·降噪消回音
Shockang15 小时前
Agentic AI 工程实战
人工智能
To_OC16 小时前
从 0 到 1:Milvus + 大模型打造私人记忆知识库
人工智能·node.js·llm