matlab - 我正在尝试从文本文件数据中提取并将其添加到音频读取函数 Matlab
问题描述
我正在从 txt 文件中提取一些数据“名称”,并尝试将该名称用于 audioread() 函数,以便进入 Matlab 位置并打开相应的音频信号 WAV 或 mp3。
fid = fopen('names.txt','rt');
text= fscanf(fid,'%s',1);
index = 0;
text = fscanf(fid,'%s',1);
while(strcmp(text,'.')~=1)
index = index+1;
storeD{index} = text;
signal=strcat('''',storeD,'.wav''');% or mp3
x=audioread(signal);
text = fscanf(fid,'%s',1);
end
fclose(fid);
现在的问题是我收到一个错误:预期输入是非缺失字符串标量或字符向量。对于这里的这一行 x=audioread(signal);
解决方案
我更喜欢将多个音频信号存储在一个结构中,因为它们可以是可变长度并且不能很好地适合数组的一个变量。也只是调整了一些名称解析。我还假设文本文件将被配置为:
名称.txt:
Jacob
Shawn
Sydney
Maria
Joseph
.
如果文件位于名为 Music 的子文件夹中:
./Music/Jacob
./Music/Shawn
./Music/Sydney
./Music/Maria
./Music/Joseph
.
根据文件中字符串的格式,可能必须编辑此行:
signal = strcat(storeD,'.wav');% or mp3
MATLAB 脚本:
Signal_Number = 1;
Audio_Signals = struct('Audio_File',[]);
fid = fopen('names.txt','rt');
%Grabbing the first name to start%
index = 1;
text = fscanf(fid,'%s',1);
%Continue to loop%
while(strcmp(text,'.')~=1)
storeD{index} = text;
index = index+1;
signal = strcat(storeD,'.wav');% or mp3
Audio_Signals(Signal_Number).Audio_File = audioread(signal{1,Signal_Number});
Signal_Number = Signal_Number + 1;
text = fscanf(fid,'%s',1);
end
fclose(fid);
Fs = 44100;
Audio_1 = Audio_Signals(1).Audio_File;
Audio_2 = Audio_Signals(2).Audio_File;
Audio_3 = Audio_Signals(3).Audio_File;
%Playing audio 1%
sound(Audio_3,Fs);
storeD
扩展:根据文本文件名读取 LAB 和 CSV 文件
.LAB 文件的内容
Alex\A23
John\B21
Nick\K36
使用 MATLAB 版本:R2019b
推荐阅读
- javascript - 将 javascript 函数转换为方法
- c++ - 您是否应该始终初始化 C++ std::vectors?
- wordpress - 在 Sage 上找不到与模式 .s?(c|a)ss" 匹配的文件
- python - 同时实现两个内部 Python 类型
- ffmpeg - 如何使用 ffmpeg 从 ts 中提取“GROUP-ID”、“LANGUAGE”和“INSTREAM-ID”
- docker - 两个 .net 核心容器之间的通信
- json - 解组具有多个 json 对象的 json 文件(无效的 json 文件)
- jupyter-notebook - Ipyvuetify 多选功能不起作用
- c++ - malloc什么时候不调用mmap?
- javascript - 如果我观看解构的道具,Vue 3 手表将不起作用