文件管理 · 2022年8月23日

wav文件读取|怎么用C语言读取一个wav格式的文件

❶ 怎样用c语言读取WAV文件振幅信息

C也能像matlab一样读取wav格式文件!用外置库libsndfile,可以读取数据,频率,通道等等以下是一段读取sample.wav,将数据存入double格式的array:#include "sndfile.h"#pragma comment(lib, "libsndfile-1.lib")void readwav(double output[length]){ SNDFILE *sf; SF_INFO info; int num_channels; int num, num_items; double *buf; int f,sr,c; int i,j; info.format = 0; sf = sf_open("sample.wav",SFM_READ,&info); if (sf == NULL){ printf("Failed to open the file.\n"); exit(-1); } f = info.frames; sr = info.samplerate; c = info.channels; printf("frames=%d\n",f); printf("samplerate=%d\n",sr); printf("channels=%d\n",c); num_items = f*c; printf("num_items=%d\n",num_items); buf = (double *)malloc(num_items*sizeof(double)); num = sf_read_double(sf,buf,num_items); sf_close(sf); printf("Read %d items\n",num); for (i = 0; i < num; i += c){ for (j = 0; j < c; ++j){ if ((i+j)<length) { output[i+j] = buf[i+j]; } } }}

❷ 怎样利用MATLAB读取一个WAV文件

读取波形:y=wavread(filename)将信号幅度减半后,存波形:wavwrite(y,filename)把你的信号y,写为以filename命名的wav文件建议你多多使用matlab的HELP命令,会收获很多的哦

❸ matlab 怎么读取WAV文件

wavplay(wavread('xxx.wav')) %xxx.wav是你的wav文件,放在当前目录就行

❹ 如何读取wav文件

划分一个缓冲区,在ReadFile函数中指明你要读取的目标WAV文件,然后按照一定长度读取到缓冲区

❺ 如何在matlab中读入一个wav声音文件

在matlab中,可以用wavread函数来打开wav格式的声音文件。wavread函数的用法如下:1、y=wavread(filename)%输入参数filename为指定载入的音频文件名称,为单引号引出的字符串形式。返回参数y%%为所读取的音频数据样本。当文件无扩展名时,系统自动附加扩展名.wav。2、[y,Fs,nbits]=wavread(filename)%参数filename、y的定义同上,Fs为采样频率,nbits为文件中每个样本的字节数。3、[…]=wavread(filename,N)%参数N为文件每个通道的前N个样本。4、[…]=wavread(filename,[N1N2])%参数N1、N2为文件每个通道从N1到N2的样本。举例说明如下:[y,fs,nbits]=wavread('d:\shuisound.wav');sound(x,fs,bits);%播放声音%y就是音频信号;%fs是采样频率,比如说16000就是每秒16000次;%nbit是采样精度,比如说16就是指16位精度的采样。

❻ 怎么用C语言读取一个wav格式的文件

首先你得知道wav格式的文件头包含哪些内容,多少个字节,然后知道真实数据的位置,再用fopen打开文件,C语言正常读写即可

❼ MATLAB中如何实现wav文件的二进制读取(类似于读取PCM文件)

用fopen+fread同样可以打开wav文件,同打开pcm文件的方法一样。不同的是,wav文件中有头文件,需要跳过22个头文件,且是两字节的。直接用fread来移动文件指针即可,eg,fread( fin,22*2,'int16')