gpt4 book ai didi

matlab - 在Matlab中不断播放声音吗?

转载 作者:行者123 更新时间:2023-12-02 22:28:14 26 4
gpt4 key购买 nike

我正在尝试创建一个MATLAB程序,每隔几分钟反复播放一次声音。现在,我将其设置为每隔几秒钟播放一次,只是为了消除系统中的一些错误。但是,当我的程序尝试重播声音时,出现此错误:

 ??? Error using ==>
audioplayer.audioplayer>audioplayer.resume at 710
A given audio device may only be opened once.

Error in ==> audioplayer.play at 88
obj.resume();

Error in ==>
audiorecorder.audiorecorder>audiorecorder.play at
779
play(player, varargin{:})

Error in ==> Voice at 17
play(voice);

到目前为止,我的代码是这样的:
 clc;
clear all;
clear main;

%File to play my voice to tell me to keep studying


voice = audiorecorder;
disp('Start speaking.');
recordblocking(voice, 3);
disp('DONE');


while i ~= 100;
pause(1);
play(voice);
i = 0;
end

基本上,我的问题是,有没有一种方法可以继续将我的声音文件写入其他名称,然后继续播放新文件?我考虑过制作一个矩阵,然后只使用“for”循环遍历它,然后播放新文件,但是我不知道如何用声音文件制作一个矩阵。我可以使用其他命令代替“play”命令来继续播放吗?

编辑:,因为我从未在类里面真正了解到此内容,所以现在对此进行更多研究,但是最好只是创建一个包含我的声音的新文件,然后再次访问该文件吗?

最佳答案

关于您发布的代码,我认为问题是您只怀疑我的pause(1)比声音短,因此您尝试和play(voice)仍从上一循环开始播放。代替play,请使用 playblocking ,因为这应该停止循环直到声音结束。

关于matlab - 在Matlab中不断播放声音吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16226309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com