How can I receive http audio streams in Matlab?
Ältere Kommentare anzeigen
I used to put the URL (ex: http://192.168.1.23:8000/stream.m3u) for the audio stream into Simulink Multimedia File Reader "File Name" parameter but this no longer functions. Is there a new way of getting streaming audio into a Simulink model? Is there a function that allows me to receive http streams in a Matlab script?
7 Kommentare
Massimo Serafini
am 25 Mai 2023
Bearbeitet: Walter Roberson
am 25 Mai 2023
I've actually found a way... (from https://it.mathworks.com/help/dsp/ref/dsp.audiofilereader-system-object.html )
filename = "liveStreamUrl"
afr = dsp.AudioFileReader(fileName);
adw = audioDeviceWriter('SampleRate', afr.SampleRate);
while ~isDone(afr)
audio = afr();
adw(audio);
end
release(afr);
release(adw);
Richard Keniuk
am 25 Mai 2023
Bearbeitet: Walter Roberson
am 25 Mai 2023
Massimo Serafini
am 25 Mai 2023
I've tried your link, and it works on my Matlab 2023a on Windows.
As you wrote, maybe the issue is some compatibility on the matlab version for Mac
Richard Keniuk
am 25 Mai 2023
Walter Roberson
am 25 Mai 2023
The milwaukee URL gives me Unsupported file smooth-jazz-wjti-milwaukee-1025 on R2023a on Mac.
Richard Keniuk
am 26 Mai 2023
Massimo Serafini
am 26 Mai 2023
Bearbeitet: Massimo Serafini
am 26 Mai 2023
I'm trying to receive multiple HTTP streams to mix them in a multichannel output. Like:
fileName1 = "live Stream 1"
afr1 = dsp.AudioFileReader(fileName1);
fileName2 = "live Stream 2"
afr2 = dsp.AudioFileReader(fileName2);
adw = audioDeviceWriter('SampleRate', 48000,...
'Driver','ASIO',...
'Device','default',...
'BufferSize', 32,...
'BitDepth','24-bit integer',...
'ChannelMappingSource', 'property',...
'ChannelMapping',1:4);
setup(adw ,zeros(afr1.SamplesPerFrame,4))
tic
while ~isDone(afr) && toc<60
audio = [afr1() afr2()];
adw(audio);
end
release(afr1);
release(afr2);
release(adw);
and this works fine, just a a bit slow before it starts playing. Anyway, if I try to add more streams the script becomes unresponsive, and it exits reporting this:
Error using AudioFileReader
Could not add the data source to the filter graph.
I've tried to pin pot the problem, and my last guess is in that the several http requests create a too long packets waiting.
Do you have any suggestion on this issue?
Thanks
Antworten (2)
Urmila Rajpurohith
am 5 Aug. 2019
0 Stimmen
Assuming you need to Process Audio file in your Simulink model:
The “From Multimedia File” block accepts the audio files which have extensions such as
.wav, .wma, .avi, .aif, .aifc, .aiff, .mp3, .au, .snd, .mp4, .m4a, .flac, .ogg
So if you need to access web based data use following function in MATLAB
webread(url)
And then you can access the data in Simulink using “From Workspace” block and can process it further.
You can refer to below documentation link for more details on how to use “webread” function.
Richard Keniuk
am 26 Aug. 2019
Bearbeitet: Richard Keniuk
am 26 Aug. 2019
0 Stimmen
1 Kommentar
Massimo Serafini
am 25 Mai 2023
Hi Richard,
did you found a workaround for getting the live audio stream with webread?
thanks
Massimo
Kategorien
Mehr zu Audio I/O and Waveform Generation finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!