C#使用whisper.net實現(xiàn)語音識別功能
介紹
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: 皇鶴樓,崔昊,西人已成皇鶴去,此地空于皇鶴樓,皇鶴一去不復(fù)返,白云千載空悠悠。
00:00:20->00:00:39: 青川莉莉漢陽樹,方草七七英五周,日暮相關(guān)何處事,燕泊江上世人愁。
項目

代碼
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實現(xiàn)語音轉(zhuǎn)文本
{
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;
}
}
}到此這篇關(guān)于C#使用whisper.net實現(xiàn)語音識別功能的文章就介紹到這了,更多相關(guān)C#語音識別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#創(chuàng)建自定義控件及添加自定義屬性和事件使用實例詳解
這篇文章主要給大家介紹了關(guān)于C#創(chuàng)建自定義控件及添加自定義屬性和事件使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
淺談C# StringBuilder內(nèi)存碎片對性能的影響
這篇文章主要介紹了淺談StringBuilder內(nèi)存碎片對性能的影響,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
C#實現(xiàn)用戶自定義控件中嵌入自己的圖標(biāo)
這篇文章主要介紹了C#實現(xiàn)用戶自定義控件中嵌入自己的圖標(biāo),較為詳細(xì)的分析了C#實現(xiàn)自定義控件中嵌入圖標(biāo)的具體步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2016-03-03

