作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编译我在互联网上找到的颤音音效代码。该代码有一个函数调用wavread
,在这个函数中matlab显示错误,我搜索了另一个代码来做到这一点,每个代码都使用这个函数打开de wav文件,有人发生了什么?下面的代码:
颤音脚本:
clear all;
close all;
clc;
infile = 'musica.wav';
% read in wav sample
[ x, Fs, N ] = wavread(infile);
%set Parameters for vibrato
% Change these to experiment with vibrato
Modfreq = 10; %10 Khz
Width = 0.0008; % 0.8 Milliseconds
% Do vibrato
yvib = vibrato(x, Fs, Modfreq, Width);
% write output wav files
wavwrite(yvib, Fs, 'out_vibrato.wav');
% plot the original and equalised waveforms
figure(1)
hold on
plot(x(1:500),'r');
plot(yvib(1:500),'b');
title('Vibrato First 500 Samples');
% Vibrato
function y=vibrato(x,SAMPLERATE,Modfreq,Width)
ya_alt=0;
Delay=Width; % basic delay of input sample in sec
DELAY=round(Delay*SAMPLERATE); % basic delay in # samples
WIDTH=round(Width*SAMPLERATE); % modulation width in # samples
if WIDTH>DELAY
error('delay greater than basic delay !!!');
return;
end
MODFREQ=Modfreq/SAMPLERATE; % modulation frequency in # samples
LEN=length(x); % # of samples in WAV-file
L=2+DELAY+WIDTH*2; % length of the entire delay
Delayline=zeros(L,1); % memory allocation for delay
y=zeros(size(x)); % memory allocation for output vector
for n=1:(LEN-1)
M=MODFREQ;
MOD=sin(M*2*pi*n);
ZEIGER=1+DELAY+WIDTH*MOD;
i=floor(ZEIGER);
frac=ZEIGER-i;
Delayline=[x(n);Delayline(1:L-1)];
%---Linear Interpolation-----------------------------
y(n,1)=Delayline(i+1)*frac+Delayline(i)*(1-frac);
%---Allpass Interpolation------------------------------
%y(n,1)=(Delayline(i+1)+(1-frac)*Delayline(i)-(1-frac)*ya_alt);
%ya_alt=ya(n,1);
end
Undefined function or variable 'wavread'
.
[ x, Fs, N ] = wavread(infile);
最佳答案
函数wavread
是 not supported从 Matlab R2015b 开始。
此功能已替换为 audioread
,并且原型(prototype)略有变化。
请更换故障线路
% read in wav sample
[x, Fs] = audioread(infile);
wavwrite
相同已替换为
audiowrite
.
% write output wav files
audiowrite('out_vibrato.wav', yvib, Fs);
关于matlab - 颤音函数matlab中的wavread错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40533703/
我已经用flutter_sound制作了录音机| , 声音只播放一次,也许有人试过在播放时自动循环播放? @override void initState() { if (widget.
我是一名优秀的程序员,十分优秀!