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;}}
}

下載?

源碼下載

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/161404.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161404.shtml
英文地址,請注明出處:http://en.pswp.cn/news/161404.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Nginx高級

Nginx高級 第一部分:擴容 通過擴容提升整體吞吐量 1.單機垂直擴容:硬件資源增加 云服務資源增加 整機:IBM、浪潮、DELL、HP等 CPU/主板:更新到主流 網卡:10G/40G網卡 磁盤:SAS(SCSI) HDD(機械…

如何使用ArcGIS Pro進行坐標轉換

不同來源的數據坐標系可能是不同的,為了統一使用這些數據就需要進行坐標轉換,ArcGIS Pro作為專業的GIS軟件,坐標轉換功能肯定也是包含的,這里為大家介紹一下ArcGIS Pro如何進行坐標轉換,希望能對你有所幫助。 數據來源…

【Exception】npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY

Talk is cheap, show me the code. 環境 | Environment kversionOSwindows 11nodev18.14.2npm9.5.0 報錯日志 | Error log >npm create vitelatest Need to install the following packages:create-vite5.0.0 Ok to proceed? (y) y npm ERR! code UNABLE_TO_GET_ISSUER_…

2023亞太杯數學建模B題思路+模型+代碼+論文

2023亞太地區數學建模A題思路:開賽后第一時間更新,獲取見文末 名片 2023亞太地區數學建模B題思路:開賽后第一時間更新,獲取見文末 名片 2023亞太地區數學建模C題思路:開賽后第一時間更新,獲取見文末 名片…

idea修改行號顏色

前言 i當idea用了深色主題后,發現行號根本看不清,或者很模糊 例如下面這樣 修改行號顏色 在IntelliJ IDEA中,你可以根據自己的喜好和需求定制行號的顏色。下面是修改行號顏色的步驟: 打開 IntelliJ IDEA。 轉到 “File”&…

ChatGPT規模化服務的經驗與教訓

2022年11月30日,OpenAI發布ChatGPT,以很多人未曾預料的速度迅速走紅。與此同時,由于短時間內用戶量的暴漲,導致服務器過載,迫使OpenAI停止新用戶的注冊。 ChatGPT發布這一年,同樣的情景發生了好幾次。在最近…

opencv-圖像金字塔

圖像金字塔是一種圖像處理技術,它通過不斷降低圖像的分辨率,形成一系列圖像。金字塔分為兩種類型:高斯金字塔和拉普拉斯金字塔。 高斯金字塔(Gaussian Pyramid): 高斯金字塔是通過使用高斯濾波和降采樣&a…

專業遠程控制如何塑造安全體系?向日葵“全流程安全閉環”解析

安全是遠程控制的重中之重,作為國民級遠程控制品牌,向日葵遠程控制就極為注重安全遠控服務的塑造。近期向日葵發布了以安全和核心的新版“向日葵15”以及同步發布《貝銳向日葵遠控安全標準白皮書》(下簡稱《白皮書》),…

使用微信小程序openMapApp接口,報錯問題解決openMapApp:fail invaild coord

使用微信小程序的 openMapApp 接口時遇到了坐標無效的錯誤 (openMapApp:fail invalid coord)。這個錯誤通常是由于提供的地理坐標不符合預期的格式或范圍而引起的: 坐標格式: 確保提供的坐標符合正確的格式。常見的格式是 "緯度,經度"&#xf…

【11月比賽合集】5場可報名的「創新應用」、「數據分析」和「程序設計」大獎賽,任君挑選!

CompHub[1] 實時聚合多平臺的數據類(Kaggle、天池…)和OJ類(Leetcode、牛客…)比賽。本賬號會推送最新的比賽消息,歡迎關注! 以下信息僅供參考,以比賽官網為準 目錄 創新應用賽(1場比賽)數據分析賽&#…

逸學java【初級菜鳥篇】9.3 Stream流

hi,我是逸塵,一起學java吧 得益于Lambda所帶來的函數式編程,引入了一個全新的Stream流概念(就是都基本使用lambda的形式)。 流處理 我們首先理解什么是流處理,它類似于sql語句,可以執行非常復…

【開源】基于Vue和SpringBoot的智能教學資源庫系統

項目編號: S 050 ,文末獲取源碼。 \color{red}{項目編號:S050,文末獲取源碼。} 項目編號:S050,文末獲取源碼。 目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、功能模塊2.1 數據中心模塊2.2 課程檔案模塊2.3 課…

原理Redis-SkipList

SkipList ZipList和QuickList的共同特點是節省內存。在遍歷元素時,只能從頭到尾或從尾到頭,所以在查找頭尾元素性能還是不錯的,但是中間元素查詢的性能就會差。 **SkipList(跳表)**首先是鏈表,但與傳統鏈表…

【算法】鏈表-20231123

這里寫目錄標題 一、19. 刪除鏈表的倒數第 N 個結點二、21. 合并兩個有序鏈表三、24. 兩兩交換鏈表中的節點 一、19. 刪除鏈表的倒數第 N 個結點 提示 中等 給你一個鏈表,刪除鏈表的倒數第 n 個結點,并且返回鏈表的頭結點。 輸入:head [1,…

第十二章 : Spring Boot 日志框架詳解

第十二章 : Spring Boot 日志框架詳解 前言 本章知識重點:介紹了日志誕生背景,4種日志框架:Logback、Log4j、Log4j2和Slf4j的優劣勢分析,以及重點介紹了log4j2的應用示例以及配置,以及日志框架應用中遇到常見的問題以及如何處理。 背景 Java日志框架的發展歷程可以追…

在PyCharm中正確設置Python項目

大家好,在Mac和Linux都支持Python,但許多開發者發現正確設置Python項目很困難。本文匯總了多平臺中運行Python的方法,提高編程的效率,如下所示: 使用命令行運行Python。 在PyCharm(免費社區版)…

【技巧】PDF文件如何編輯?

日常辦公中我們經常會用到PDF文件,PDF具備很好的兼容性、穩定性及安全性,但卻不容易編輯,那PDF要如何編輯呢? 如果打開PDF文件就只是只讀的性質,說明文件是在線打開,或者通過PDF閱讀器打開的,這…

Navmesh 尋路

用cocos2dx引擎簡單實現了一下navmesh的多邊形劃分,然后基于劃分多邊形的a*尋路。以及路徑拐點優化算法 用cocos主要是方便使用一些渲染接口和定時器。重點是實現的原理。 首先畫了一個帶有孔洞的多邊形 //多邊形的頂點數據Vec2(100, 100),Vec2(300, 200),Vec2(50…

高防服務器的工作原理

在當今互聯網時代,網絡安全問題日益突出,各種網絡攻擊層出不窮。為了保護企業的網絡安全,高防服務器應運而生。那么,你是否了解高防服務器的工作原理呢?下面就讓我們一起來探索一下。 高防服務器是一種能夠有效抵御各種…

語音識別入門——常用軟件及python運用

工具以及使用到的庫 ffmpegsoxaudacitypydubscipylibrosapyAudioAnalysisplotly 本文分為兩個部分: P1:如何使用ffmpeg和sox處理音頻文件 P2:如何編程處理音頻文件并執行基本處理 P1 處理語音數據——命令行方式 格式轉換 ffmpeg -i video…