没有合适的资源?快使用搜索试试~ 我知道了~
首页C#实现WAV音频单声道提取
C#实现WAV音频单声道提取
4星 · 超过85%的资源 需积分: 43 48 下载量 163 浏览量
更新于2023-06-21
评论
收藏 312KB DOC 举报
的VCD或者DVD都是双声道的形式,唱片商在录制唱片时往往提供了两个或多个声道,以保存不同的音频内容,以形成立体声效。左声道保存的大多为一些背景声效,如卡拉OK的消音伴唱。而右声道保存的往往是较为主要的声音,比如主唱的歌声。利用多声道技术,听众可以清晰地分辨出各种乐器来自的方向,从而使音乐更富想象力,更加接近于临场感受。 有时候我们只需要音频里的单声道内容,比如喜欢用电脑录制卡拉ok的朋友就经常为了找歌曲的伴唱而流连于各大伴奏网站。现在的网络翻唱非常流行,很多网络歌手就是先搜索喜欢的歌曲的伴奏,然后利用Adobe Audition(前身就是大名鼎鼎的CoolEdit)录制自己的演唱,然后加一些简单的降噪和压限处理,最后mix到伴奏的音轨里面。尽管利用Audition也可以完成单声道的提取工作,但是操作起来比较复杂。
资源详情
资源评论
资源推荐
C# 实现
WAV
音频单声道提取
作者:Joseph Pan (转载请注明出
处 http://www.cnblogs.com/weizhoupan/archive/2011/03/20/1989718.html )
喜欢买碟或者卡拉 ok 的朋友一定不会对声道这个术语陌生。通常我们在音像店买回来
的 VCD 或者 DVD 都是双声道的形式,唱片商在录制唱片时往往提供了两个或多个声道,
以保存不同的音频内容,以形成立体声效。左声道保存的大多为一些背景声效,如卡拉
OK 的消音伴唱。而右声道保存的往往是较为主要的声音,比如主唱的歌声。利用多声道
技术,听众可以清晰地分辨出各种乐器来自的方向,从而使音乐更富想象力,更加接近于
临场感受。
有时候我们只需要音频里的单声道内容,比如喜欢用电脑录制卡拉 ok 的朋友就经常为
了找歌曲的伴唱而流连于各大伴奏网站。现在的网络翻唱非常流行,很多网络歌手就是先
搜索喜欢的歌曲的伴奏,然后利用 Adobe Audition(前身就是大名鼎鼎的 CoolEdit)录制自
己的演唱,然后加一些简单的降噪和压限处理,最后 mix 到伴奏的音轨里面。尽管利用
Audition 也可以完成单声道的提取工作,但是操作起来比较复杂。
其实对 WAV 的单声道提取并不困难。关键在于对 WAV 文件格式的理解。
一、WAV 的文件头
WAV 为微软公司(Microsoft)开发的一种声音文件格式,它符合 RIFF(Resource
Interchange File Format)文件规范。所有的 WAV 都有一个文件头,这个文件头包含了音频流
的编码参数。
偏移地址 字节数 类型 内容
00H~03H 4
字符 资源交换文件标志(RIFF)
04H~07H 4
长整数 从下个地址开始到文件尾的总字节数
08H~0BH 4
字符 WAV 文件标志(WAVE)
0CH~0FH 4
字符 波形格式标志(FMT)
10H~13H 4
整数 过滤字节(一般为 00000010H)
14H~15H 2
整数 格式种类(值为 1,表示数据 PCMμ 律编码的数据)
16H~17H 2
整数 通道数,单声道为 1,双声道为 2
18H~1BH 4
长整数 采样频率
1CH~1FH 4
长整数 波形数据传输速率(每秒平均字节数)
20H~21H 2
整数 数据的调整数(按字节计算)
22H~23H 2
整数 样本数据位数
表 1 WAV 的文件头
由表 1 我们可以得到以下几个重要的信息:
1 16H~17H 处记录通道数,当值为 1 时,表示文件为单声道;当值为 2 时,表示文件
为双声道。
2 18H~1BH 处记录采样频率。它的取值与声卡的支持情况有关。常见的有
8000、11025、22050、44100、48000、96000 等。其中,44100 是大多数歌曲文件采用
的标准采样频率。
3 22H~23H 处记录样本数据位数。即每一个采样的长度。常见的有 8 位和 16 位。这
里还包含了另外一个信息:若样本的数据位数为 n,对于双声道文件,则低 n/2 位用于
存放左声道;高 n/2 位用于存放右声道。
根据这三点信息,我们可以自己编程实现单声道的提取。下面我们就来一步步动手实
现。由于程序涉及的只是简单的二进制文件读写操作,因此这里只举 C#作简单示例,其他
语言的处理与之大同小异。
二、文件读取类的编写
为了方便以后对 WAV 文件的研究,我们可以先单独写一个 WAV 文件读取类,专门获
取文件头的每一块信息:
WaveAccess1/*WaveAccess
2* 提供 wav 文件头的访问
3* 和文件写入相关操作
4 */
5
6 class WaveAccess
7 {
8
9 private byte[] riff;//4
10 private byte[] riffSize;//4
11 private byte[] waveID;//4
12 private byte[] fmtID;//4
13 private byte[] notDefinition;//4
14 private byte[] waveType;//2
15 private byte[] channel;//2
16 private byte[] sample;//4
17 private byte[] send;//4
18 private byte[] blockAjust;//2
19 private byte[] bitNum;//2
20 private byte[] unknown;//2
21 private byte[] dataID;//4
22 private byte[] dataLength;//4
23
24 short[] data;
25 private string longFileName;
26
27 public string LongFileName
28 {
29 get {return longFileName; }
30 }
31
32 public string ShortFileName
33 {
34 get
35 {
36 int pos= LongFileName.LastIndexOf("\\");
37 return LongFileName.Substring(pos+ 1);
38 }
39 }
40
41 public short[] Data
42 {
43 get {return data; }
44 set { data= value; }
45 }
46
47 public string Riff
48 {
49 get {return Encoding.Default.GetString(riff); }
50 set { riff= Encoding.Default.GetBytes(value); }
51 }
52
53 public uint RiffSize
54 {
55 get {return BitConverter.ToUInt32(riffSize,0); }
56 set { riffSize= BitConverter.GetBytes(value); }
57 }
58
59
60 public string WaveID
61 {
62 get {return Encoding.Default.GetString(waveID); }
63 set { waveID= Encoding.Default.GetBytes(value); }
64 }
65
66
67 public string FmtID
68 {
69 get {return Encoding.Default.GetString(fmtID); }
70 set { fmtID= Encoding.Default.GetBytes(value); }
71 }
72
73
74 public int NotDefinition
75 {
76 get {return BitConverter.ToInt32(notDefinition,0); }
77 set { notDefinition= BitConverter.GetBytes(value); }
剩余11页未读,继续阅读
北京天宇联科技
- 粉丝: 9
- 资源: 32
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论4