转换wav音频. csv

112(30天)
Debagnik
Debagnik 2020年4月16日
回答: Mehreen Jabbeen2021年4月25日
我是相当新的matlab
我想转换一个逗号分隔值(csv)文件来一波(wav音频文件)同时也策划。
我之前看到这个回答 在这里 matlab的答案,但我有一些问题和一些错误,为了简单起见,我这里有附加的代码和csv文件
错误显示
未定义的函数或变量“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);

接受的答案

杰夫•海斯
杰夫•海斯 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
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);

标签

s manbetx 845


释放

R2018a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!