c# 根据语音文件画波形
c#对于语音的操作,必然离不开NAudio了,直接NuGet安装NAudio。
效果图如下:
核心代码:首先通过AudioFileReader获取到音频数据byte[],再将byte[]转换为float[]数据,就可以根据float画波形了。
/// <summary>/// 开始画波形/// </summary>/// <param name="fileName"></param>public void BeginDrawWaveLine(string fileName){if (string.IsNullOrEmpty(fileName))return;lineData.Clear();_audioFileReader = new AudioFileReader(fileName);byte[] datas = new byte[_audioFileReader.Length];_audioFileReader.Read(datas, 0, datas.Length);float[] wavdata = new float[datas.Length / sizeof(float)];Buffer.BlockCopy(datas, 0, wavdata, 0, datas.Length);var ww = mainCanvas.ActualWidth;var yScale = mainCanvas.ActualHeight / 2;double x, y1, y2;int index = wavdata.Length / (int)ww;for (int i = 0; i < ww; i++){x = i;y1 = yScale - wavdata[i * index] * yScale;y2 = yScale + wavdata[i * index] * yScale;lineData.Add(new Point(x, y1));lineData.Add(new Point(x, y2));}this.InvalidateVisual();}
///<summary>/// 重写渲染方法/// </summary>/// <param name="drawingContext"></param>protected override void OnRender(DrawingContext drawingContext){base.OnRender(drawingContext);if (lineData.Count > 1){for (int i = 0; i < lineData.Count - 2; i++){drawingContext.DrawLine(pen, lineData[i], lineData[i + 1]);}}}
附完整项目代码下载:
https://download.csdn.net/download/esiangchioa/12545388
c# 根据语音文件画波形相关推荐
- matlab2014的m文件画波形,科学网—用MATLAB软件绘制驻波的波形图 - 李金磊的博文...
已知驻波的运动学方程为 y=2Acos(2πx/λ)cos(ωt) 相应的MATLAB程序为 syms lambda omega; y=2*A.*cos(2*pi*x./lambda).*cos(om ...
- 语音处理/语音识别基础(四)- 语音文件读取与播放
本文分享如何在 matlab 里面读取 wav 文件,播放 wav 文件,以及如何录制语音文件,保存语音文件. 代码中演示了如何改变音频文件的采样率(影响到播放速度),音量(影响到听到的声音大小). ...
- MATLAB和Python读取wave文件的波形对比
用python读取.wav文件的波形后再用MATLAB读取文件波形进行验证. 1.MORSE 1.1 Python 程序见之前的博客. 波形如图1所示: 图1 1.2 MATLAB 读取波形程序 ...
- python音频频谱_Python 读取WAV音频文件 画频谱的实例
Python 读取WAV文件 import wave import struct from scipy import * from pylab import * #读取wav文件,我这儿读了个自己用p ...
- python 语音特征提取_使用python实现语音文件的特征提取方法
概述 语音识别是当前人工智能的比较热门的方向,技术也比较成熟,各大公司也相继推出了各自的语音助手机器人,如百度的小度机器人.阿里的天猫精灵等.语音识别算法当前主要是由rnn.lstm.dnn-hmm等 ...
- 利用python实现语音文件的特征提取
概述 语音识别是当前人工智能的比较热门的方向,技术也比较成熟,各大公司也相继推出了各自的语音助手机器人,如百度的小度机器人.阿里的天猫精灵等.语音识别算法当前主要是由RNN.LSTM.DNN-HMM等 ...
- python音频频谱_Python读取WAV音频文件 画频谱的方法
Python 读取WAV文件 import wave import struct from scipy import * from pylab import * #读取wav文件,我这儿读了个自己用p ...
- 语音文件转成文字怎么转
语音文件的话,很多时候都不是很方便,有时候我们在工作中就会碰到这样的难题,那就是把语音文件转成文字来使用,很多人遇到这样的问题就傻眼了,不知道该怎么转换,下面小编就将自己的方法介绍给大家吧. 使用工具 ...
- CosmoMC命令CAMB文件画功率谱
CosmoMC命令CAMB文件画功率谱 画功率谱步骤: 1)进入software文件夹,解压CAMB-Nov2016.tar.gz文件 2)进入刚建立的文件夹CAMB-Nov2016文件夹,vim M ...
最新文章
- 【Codeforces】716B Complete the Word (26个字母)
- php while循环控制实例讲解
- 关于Oracle full outer join 的bug问题分析及处理
- LiveVideoStack线上分享第四季(十二):实时音视频抗丢包的实践
- Docker中数据管理
- Liskov替换原则(LSP)
- java @Column 引发的一点思考
- Gitlab 服务器搭建,maven安装与jdk安装,linux下安装git
- MongoDB查询及索引优化
- SaltStack之state.sls
- ArcGIS 计算挖填方区域和挖填方量
- 查看Mysql数据库版本
- sop28和so28j封装_sop28封装尺寸
- C语言变量相关试题,C语言模拟试题
- “鹏城”伴你鹏程:下届全国人工智能大赛再会!
- MySQL讲义第 45 讲——select 查询之查询练习(三)
- 互联网奥秘_Excel数据表的奥秘
- office2007无法使用宏的解决方法
- 微指创始人任春雷携好机友踏入微商领域
- 阿里云国际版ACE与国内版ACE区别