I have made a code which runs on matlab online but shows an error when run on my local pc
5 views (last 30 days)
Show older comments
% Parameters for recording
fs = 44100; % Sampling frequency (Hz)
nBits = 16; % Bit depth
nChannels = 1; % Number of channels (1 for mono, 2 for stereo)
duration = 10; % Duration of the recording in seconds
% Create an audiorecorder object
recObj = audiorecorder(fs, nBits, nChannels);
% Display message
disp('Recording will start in 3 seconds...');
pause(3); % Wait 3 seconds before starting
disp('Recording now...');
% Start recording
recordblocking(recObj, duration);
disp('Recording completed.');
% Retrieve audio data
audioData = getaudiodata(recObj);
% Save the recorded audio as a .wav file
audiowrite('speech_dft.wav', audioData, fs);
disp('Audio file saved as "speech_dft.wav".');
[y,fs] = audioread("speech_dft.wav");
sound(y,fs)
transcript = speech2text(y,fs)
% Assuming 'transcript' contains the transcribed text
transcript = lower(transcript); % Convert to lowercase to handle case-insensitivity
% Initialize variable x
x = NaN; % Default value (if neither word is found)
% Check if "height" is in the transcript
if contains(transcript, 'height')
x = 1; % Assign 1 if "height" is found
% Check if "travel" is in the transcript
elseif contains(transcript, 'travel')
x = 0; % Assign 0 if "travel" is found
end
% Display the value of x
disp(['Value of x: ', num2str(x)]);
%%output is
%Incorrect number or types of inputs or outputs for function isvalid.
%Error in speech2text
3 Comments
Walter Roberson
on 25 Nov 2024
In R2023b the syntax is
transcript = speech2text(clientObj,audioIn,fs)
where clientObj is returned by speechClient()
Answers (2)
Walter Roberson
on 25 Nov 2024
In R2022b, R2023a, and R2023b, https://www.mathworks.com/help/releases/R2023b/audio/ref/speech2text.html has a different calling sequence.
The calling sequence changed as of R2024a.
0 Comments
Sandeep Mishra
on 25 Nov 2024
Hi Anurag,
I also encountered a similar error while running the code snippet in MATLAB R2023b.
The problem arises due to the version mismatch between MATLAB on the local machine (R2023b) and the MATLAB Online (R2024b).
From the release notes, it can be observed that the 'speech2text' function requires a 'clientObj' parameter as the first argument up to MATLAB R2023b.
For more details, refer to the 'speech2text' release notes: https://www.mathworks.com/help/audio/release-notes.html?startrelease=R2023b&endrelease=R2024a&rntext=speech2text&groupby=release&sortby=descending&searchHighlight=speech2text#mw_c2706f73-9725-45c8-a190-8f3e74a6cdb7
To resolve the issue and ensure compatibility with MATLAB R2023b, you can modify the code snippet to include a ‘clientObj’ parameter as follows:
transcriber = speechClient("wav2vec2.0");
transcript = speech2text(transcriber, y,fs)
transcript = transcript.Transcript;
Refer to the following MathWorks Documentation to learn more about ‘speech2text’ function: https://www.mathworks.com/help/releases/R2023b/audio/ref/speech2text.html
0 Comments
See Also
Categories
Find more on Audio I/O and Waveform Generation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!