In this code I want to register names not numbers in the database so that when I test it it will detect who the voice is that. anyone can help me what should I write in the code. Thank you
I need help Im trying to have a trouble issue here like I dont want to use numbers to detect that speaker. I want to use names. This is my code. In the training part
1 次查看(过去 30 天)
显示 更早的评论
clear all;
close all;
clc;
warning off
Fs=8000;%Sampling frequency in hertz
ch=1;%Number of channels--2 options--1 (mono) or 2 (stereo)
datatype='uint8';
nbits=16;%8,16,or 24
Nseconds=5;
%% Create a recorder object
recorder=audiorecorder(Fs,nbits,ch);
datatype='uint8';
%% Record user's voice for 7 sec
disp('Get Ready')
pause(3)
disp('Please Record your voice');
drawnow();
pause(1);
recordblocking(recorder,Nseconds);
disp('Recorded');
%%Play users voice
play(recorder);
data= getaudiodata(recorder);
%Store recorded audio signal in numeric array
data=getaudiodata(recorder,datatype);
plot(data)
figure;
%%Training Function
f = voiceFeatures(data);
%%Save Users data
user=input('Enter the users number:');
try
load database
F=[F;f];
C=[C;user];
save database
catch
F=f;
C=user;
save database F C
end
msgbox('Your voice is registered')
回答(2 个)
Walter Roberson
2022-12-4
user = cellstr(input('Enter the users name:', 's'));
11 个评论
Walter Roberson
2022-12-9
You cannot do that. There is no code in the world that can take recorded speech data and directly convert it into the name of the speaker, without going through a numeric step of analyzing coefficients and comparing against recorded coefficients to determine closest match.
As such, code is always going to arrive at an index of which match or matches are closest, and you would then always use that index to look into the list of names to pull out the name associated with the match.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Audio I/O and Waveform Generation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!