转换wav音频. csv
112(30天)
显示旧的评论
我是相当新的matlab
我想转换一个逗号分隔值(csv)文件来一波(wav音频文件)同时也策划。
错误显示
未定义的函数或变量“y”。
错误Untitled(17行)
audiowrite (audio_output.wav, y, Fs)
我不明白为什么在代码中变量‘y’和‘f’里有代码
clc;
清晰的所有;
关闭所有;
数据= csvread (“output.csv”);
时间=数据(:1);
输出=数据(:,2);
情节(时间、输出);
保存(“aec.mat”,“时间”,“输出”);
负载aec.mat
文件名=“audio_output.wav”;
Fs = 6000;
audiowrite (“audio_output.wav”,y, Fs)
清晰的y Fs
[y, Fs] = audioread(文件名);
声音(y, Fs);
0评论
接受的答案
杰夫•海斯
2020年4月16日
编辑:杰夫•海斯
2020年4月16日
Debagnik -
y
变量代表了音频样本。在你的情况下,这将是
输出
。只是改变代码如下
时间=数据(:1);
y =数据(:,2);
情节(时间,y);
我看到你有设置采样率,Fs, 6000……就像在你提供的链接。如果你的
时间
数据是在几秒钟内,那么它看起来像你有2.5秒(
时间(结束)- (1)
)的数据。因为有108569个(
长度(输出)
)样品,那么这将意味着你的
Fs
可能是
Fs =长度(输出)/(时间(结束)- (1));% 43427.6
这是正确的吗?或者是你的采样频率真的6000吗?
4评论
杰夫•海斯
2020年4月17日
从
audiowrite y参数
,
有效的范围为数据量取决于y的数据类型
。双数据类型(输入)范围是-1.0 + 1.0。你的输入是在-6.5和6.0之间。我想,你可以把你的数据
y
的最大绝对值:
时间=数据(:1);
y =数据(:,2);
y = y / max (abs (min (y)), max (y));
答案(1)
Mehreen Jabbeen
2021年4月25日
clc;
清晰的所有;
关闭所有;
y = csvread (“original.csv”);
显示器(y)
文件名=“yes.wav”;
Fs = 16000;
audiowrite(文件名,y, Fs)
清晰的y Fs
[y, Fs] = audioread(文件名);
显示器(y)
显示器(Fs)
声音(y, Fs);