Laudo assinado pelo professor Mario Gazziro sobre áudios atribuídos a Augusto Heleno

I

Laudo completo realizado pelo professor Mario Gazziro no caso dos áudios atribuídos ao general Augusto Heleno

PARECER TÉCNICO NCFA001-23
__________________________________________________________________
REVISTA FÓRUM
CONSULENTE
Santo André, 25 de setembro de 2023
___________________________________________________________________________________________
NCFA - Núcleo de Computação Forense Aplicada (USP e UFABC) Sede: Av. dos Estados, 5001
4o andar, Bloco L - Santo André, SP, CEP 09210-580 Tel.: (11) 3356-7676 (ramal 7676)
Contexto
Atendendo à solicitação da Revista Fórum, foram analisados áudios que circularam em
grupos de whatsapp e telegram em outubro de 2022, os quais incitavam a população a
incorrer em distúrbios civis e alegando categóricamente que as forças armadas iriam
tomar partido nessa iniciativa. Tais áudios foram atribuídos na época ao então ministro do
Gabinete de Segurança Institucional, General Augusto Heleno, o qual negou em seu X (à
época Twitter) a autoria dos mesmos, assim como nota oficial do GSI negou a atribuição
ao seu então chefe.
Na ocasião, apenas a negativa oficial por parte do acusado (e de seus subordinados)
foram tratadas como suficientes pela imprensa da época para categorizar a disseminação
de tais áudios atribuídas ao general como Fake News, sendo que um autor efetivo nunca
foi responsabilizado por tal ato. No entanto, a gravidade dos acontecimentos dos meses
subsequentes que culminaram nos eventos catastróficos de destruição de patromônio
público no dia 8 de janeiro de 2023 em Brasilia, DF, chamou a atenção da sociedade e
dos meios de imprensa, assim como dos pesquisadores acadêmicos, de modo que se
iniciou uma revisão dos fatores que levaram a esse fenômeno, tendo sido implantada
inclusive uma Comissão Parlamentar Mista de Inquérito no Senado Federal.
Dentro desse contexto, foi considerado revisar a busca do verdadeiro autor que tenha
criado tais áudios subversivos, enfáticos e categóricos, e o ponto de partida para essa
busca incorreria justamente em primeiramente isentar de forma técnica e definitiva a
alegação de atribuição ao seu suposto autor, General Augusto Heleno. Eis que para
nossa surpresa, ao realizar o mesmo protocolo de análise e comparação de biometria
vocal - o qual já foi utilizado várias vezes por nosso laboratório para inocentar figuras de
destaque nacional - constatamos, após análise de 40 partições, que os áudios
PERTENCEM AO SUPOSTO AUTOR, com intervalo de confiança de 87%, em uma
análise conclusiva de confirmação de sua autoria, visto o resultado estar acima de 85%.
METODOLOGIA
Em função da suspeita de uso de tecnologias que fazem uso das chamadas deepfake
news, o uso de técnicas convencionais de análise forense de áudio – a listar: análises
perceptivo-auditivas (segmentais, suprassegmentais, fatores paralinguísticos e dialetais),
análises acústicas, frequência fundamental F0, formantes e até mesmo VOT (tempo de
ataque de vozeamento) – não foi recomendado, justamente pelo fato de que tais análises
são susceptíveis de serem enganadas pela nova tecnologia.
Adotamos então um método mais novo e mais robusto contra esse novo advento
tecnológico e ameaçador, que são as deepfake news, a chama análise de coeficientes
cepstrais em escala Mel, ou MFCC, a qual produz uma biometria vocal do interlocutor,
através da geração de um mapa gráfico de características pertinentes a nuances do seu
trato vocal, o qual tem características únicas de pessoa para pessoa, similar a impressão
digital.
Tal método foi elaborado em 2004 e publicado cientificamente por Hasan et al, descrito
no artigo “SPEAKER IDENTIFICATION USING MEL FREQUENCY CEPSTRAL
COEFFICIENTS”, de Hasan, R. et al. E apresentado na 3rd International Conference on
Electrical Computer Engineering ICECE 2004 em dezemro de 2004.
RESULTADOS
A figura a seguir apresenta o mapa cepstral da voz do General Augusto Heleno, criado a
partir de uma entrevista dele no Youtube (www.youtube.com/watch?v=PmnRD564_h0)
cuja autenticidade é inquestionável devido a natureza oficial do video (canalGOV, a Voz
do Brasil). Já os suspostos áudios atribuídos ao General Augusto Heleno que foram
enviados ao pesquisador por representante da Revista Fórum foram disponibilizados em
seu canal no Youtube, cujos links são apresentados aqui: https://youtu.be/KM8XO5AguSc
e https://youtu.be/BefrwT-WFm4.
Todos os videos foram segmentados manualmente em trechos com cerca de 6 segundos,
garantindo que cada trecho se referisse apenas à voz do indivíduo analisado, de forma a
garantir que não ocorriam ruidos ambientes durante a fala e de que o trecho da fala
pertencesse ao individuo investigado, e não a algum locutor no ambiente. Feito isso, foi
aplicada a análise técnica descrita na seção anterior em 40 partições desses áudios, que
geraram os referidos mapas de biometria de voz (que pode ser entendidos com se
fossem a impressão digital da voz, tal qual uma impressão do polegar identifica
unicamente uma pessoa), os quais por sua vez tiveram sua verosimilhança atestada com
um método de inteligência artificial não supervisionado chamado KNN (rede de vizinhos).
CONCLUSÃO
Portanto, as evidências indicam que os áudios PERTENCEM AO SUPOSTO AUTOR,
com intervalo de confiança de 87%, em uma análise conclusiva de confirmação de sua
autoria, visto o resultado estar acima de 85%.
Eventuais divergências ou contestações de qualquer natureza quanto à apropriação aos
falantes deverão ser prontamente e formalmente submetidas pelos consulentes aos
subscritores no endereço indicado abaixo, para avaliação técnica e, caso sejam
consideradas procedentes, imediata republicação do parecer ou edição de adendo.
Caso seja necessário, outras análises poderão ser eventualmente apresentas em parecer
técnico complementar. Os consulentes, ao receberem, utilizarem ou divulgarem o
presente parecer ou as informações nele contidas, automaticamente concordam em
assumir exclusivamente para si as responsabilidades pertinentes, comprometendo-se a
isentar e proteger os pesquisadores do Núcleo de Computação Forense Aplicada de
qualquer reivindicação eventualmente resultante.
Encerra-se o presente parecer técnico que contém 07 folhas, sendo esta, datada e
assinada.
Santo André, 25 de setembro de 2023
_________________________
Dr. Mario Gazziro
Pesquisador UFABC
___________________________________________________________________________________________
NCFA - Núcleo de Computação Forense Aplicada (USP e UFABC) Sede: Av. dos Estados, 5001
4o andar, Bloco L - Santo André, SP, CEP 09210-580 Tel.: (11) 3356-7676 (ramal 7676)
LISTAGEM DE CÓDIGOS-FONTE EM MATLABTM
OS CÓDIGOS E ÁUDIOS ORIGINAIS ESTÃO DISPONÍVEIS NA PLATAFORMA GITHUB DO PESQUISADOR:
https://github.com/mariogazziro/reconhecimento_de_voz/blob/main/heleno.zip
clear all; close all; clc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Define variables
% analysis frame duration (ms)
Tw = 25;
Ts = 10; % analysis frame shift (ms)
alpha = 0.97; % preemphasis coefficient
M=20; % number of filterbank channels
C=12; % number of cepstral coefficients
L=22; % cepstral sine lifter parameter
LF = 300; % lower frequency limit (Hz)
HF = 3700; % upper frequency limit (Hz)
wav_file = 'controle1.wav'; % input audio filename
% Read speech samples, sampling rate and precision from
file [ audioIn, fs] = audioread( wav_file );
% Feature extraction (feature vectors as columns)
[ MFCCs, FBEs, frames ] = ...
mfcc( audioIn, fs, Tw, Ts, alpha, @hamming, [LF HF], M, C+1, L );
% Generate data needed for plotting
% frame length and number of frames
[ Nw, NF ] = size( frames );
time_frames = [0:NF-1]*Ts*0.001+0.5*Nw/fs; % time vector (s) for frames
time = [ 0:length(audioIn)-1 ]/fs; % time vector (s) for signal samples
logFBEs = 20*log10( FBEs ); % compute log FBEs for plotting
logFBEs_floor = max(logFBEs(:))-50; % get logFBE floor 50 dB below max
logFBEs( logFBEs<logFBEs_floor ) = logFBEs_floor; % limit logFBE dynamic range
% Generate plots
figure('Position', [30 30 800 600], 'PaperPositionMode', 'auto', ...
'color', 'w', 'PaperOrientation', 'landscape', 'Visible', 'on' );
subplot( 211 );
plot( time, audioIn, 'b' );
xlim( [ min(time_frames) max(time_frames) ] );
xlabel( 'Tempo (s)' );
ylabel( 'Amplitude' );
title( 'Voz original de Ciro Gomes (www.youtube.com/watch?v=cfaKlpu1ywU');
subplot( 212 );
imagesc( time_frames, [1:C], MFCCs(2:end,:) ); % HTK's TARGETKIND: MFCC
axis( 'xy' );
xlim( [ min(time_frames) max(time_frames) ] );
xlabel( 'Tempo (s)' );
ylabel( 'Cepstrum' );
title( 'Coeficientes cepstrum nas frequências Mel' );
% Set color map to grayscale
colormap( 1-colormap('jet') );
controle1=MFCCs(2:13,[1:600])';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Define variables
% analysis frame duration (ms)
Tw = 25;
Ts = 10; % analysis frame shift (ms)
alpha = 0.97; % preemphasis coefficient
M=20; % number of filterbank channels
C=12; % number of cepstral coefficients
L=22; % cepstral sine lifter parameter
LF = 300; % lower frequency limit (Hz)
HF = 3700; % upper frequency limit (Hz)
wav_file = 'controle2.wav'; % input audio filename
% Read speech samples, sampling rate and precision from
file [ audioIn, fs] = audioread( wav_file );
% Feature extraction (feature vectors as columns)
[ MFCCs, FBEs, frames ] = ...
mfcc( audioIn, fs, Tw, Ts, alpha, @hamming, [LF HF], M, C+1, L );
% Generate data needed for plotting
% frame length and number of frames
[ Nw, NF ] = size( frames );
time_frames = [0:NF-1]*Ts*0.001+0.5*Nw/fs; % time vector (s) for frames
time = [ 0:length(audioIn)-1 ]/fs; % time vector (s) for signal samples
logFBEs = 20*log10( FBEs ); % compute log FBEs for plotting
logFBEs_floor = max(logFBEs(:))-50; % get logFBE floor 50 dB below max
logFBEs( logFBEs<logFBEs_floor ) = logFBEs_floor; % limit logFBE dynamic range
% Generate plots
figure('Position', [30 30 800 600], 'PaperPositionMode', 'auto', ...
'color', 'w', 'PaperOrientation', 'landscape', 'Visible', 'on' );
________________________________________________________________________________________
NCFA - Núcleo de Computação Forense Aplicada (USP e UFABC) Sede: Av. dos Estados, 5001 - 4o andar,
Bloco L - Santo André, SP, CEP 09210-580 Tel.: (11) 3356-7676 (ramal 7676)
subplot( 211 );
plot( time, audioIn, 'b' );
xlim( [ min(time_frames) max(time_frames) ] );
xlabel( 'Tempo (s)' );
ylabel( 'Amplitude' );
title( 'Áudio de controle 2');
subplot( 212 );
imagesc( time_frames, [1:C], MFCCs(2:end,:) ); % HTK's TARGETKIND: MFCC
axis( 'xy' );
xlim( [ min(time_frames) max(time_frames) ] );
xlabel( 'Tempo (s)' );
ylabel( 'Cepstrum' );
title( 'Coeficientes cepstrum nas frequências Mel' );
% Set color map to grayscale
colormap( 1-colormap('jet') );
controle2=MFCCs(2:13,[1:600])';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Define variables
% analysis frame duration (ms)
Tw = 25;
Ts = 10; % analysis frame shift (ms)
alpha = 0.97; % preemphasis coefficient
M=20; % number of filterbank channels
C=12; % number of cepstral coefficients
L=22; % cepstral sine lifter parameter
LF = 300; % lower frequency limit (Hz)
HF = 3700; % upper frequency limit (Hz)
wav_file = 'amostra.wav'; % input audio filename
% Read speech samples, sampling rate and precision from
file [ audioIn, fs] = audioread( wav_file );
% Feature extraction (feature vectors as columns)
[ MFCCs, FBEs, frames ] = ...
mfcc( audioIn, fs, Tw, Ts, alpha, @hamming, [LF HF], M, C+1, L );
% Generate data needed for plotting
% frame length and number of frames
[ Nw, NF ] = size( frames );
time_frames = [0:NF-1]*Ts*0.001+0.5*Nw/fs; % time vector (s) for frames
time = [ 0:length(audioIn)-1 ]/fs; % time vector (s) for signal samples
logFBEs = 20*log10( FBEs ); % compute log FBEs for plotting
logFBEs_floor = max(logFBEs(:))-50; % get logFBE floor 50 dB below max
logFBEs( logFBEs<logFBEs_floor ) = logFBEs_floor; % limit logFBE dynamic range
% Generate plots
figure('Position', [30 30 800 600], 'PaperPositionMode', 'auto', ...
'color', 'w', 'PaperOrientation', 'landscape', 'Visible', 'on' );
subplot( 211 );
plot( time, audioIn, 'b' );
xlim( [ min(time_frames) max(time_frames) ] );
xlabel( 'Tempo (s)' );
ylabel( 'Amplitude' );
title( 'Áudio de amostra a ser testado');
subplot( 212 );
imagesc( time_frames, [1:C], MFCCs(2:end,:) ); % HTK's TARGETKIND: MFCC
axis( 'xy' );
xlim( [ min(time_frames) max(time_frames) ] );
xlabel( 'Tempo (s)' );
ylabel( 'Cepstrum' );
title( 'Coeficientes cepstrum nas frequências Mel' );
% Set color map to grayscale
colormap( 1-colormap('jet') );
amostra=MFCCs(2:13,[1:600])';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
X=[amostra;controle1];
Y(1:600)="Amostra";
Y(601:1200)="Controle";
Y=Y';
mdl = fitcknn(X,Y,'NumNeighbors',12,'Standardize',1);
rloss = resubLoss(mdl) % The classifier predicts incorrectly for XX% of the training data. 3,08%
[label,score,cost] = predict(mdl,controle2)
mean(score(:,1))
mean(score(:,2))
___________________________________________________________________________________________
NCFA - Núcleo de Computação Forense Aplicada (USP e UFABC) Sede: Av. dos Estados, 5001
4o andar, Bloco L - Santo André, SP, CEP 09210-580 Tel.: (11) 3356-7676 (ramal 7676)

Recomendados

2015-CBQEE-I von
2015-CBQEE-I2015-CBQEE-I
2015-CBQEE-ISergio Moraes
312 views6 Folien
Presentation.R04 von
Presentation.R04Presentation.R04
Presentation.R04ricardo_osorio
248 views38 Folien
INSTRUMENTAÇÃO VIRTUAL PARA AQUISIÇÃO DE SINAIS.pdf von
INSTRUMENTAÇÃO VIRTUAL PARA AQUISIÇÃO DE SINAIS.pdfINSTRUMENTAÇÃO VIRTUAL PARA AQUISIÇÃO DE SINAIS.pdf
INSTRUMENTAÇÃO VIRTUAL PARA AQUISIÇÃO DE SINAIS.pdfAlejandroAlvesVictor
6 views8 Folien
Metodologia para reconhecimento de sons em dispositivos móveis von
Metodologia para reconhecimento de sons em dispositivos móveisMetodologia para reconhecimento de sons em dispositivos móveis
Metodologia para reconhecimento de sons em dispositivos móveisMarcelo Ruaro
376 views9 Folien
Wemerson artigo von
Wemerson artigoWemerson artigo
Wemerson artigoWilliam Silveira da Silva
219 views6 Folien
Slides 9 erm von
Slides 9 ermSlides 9 erm
Slides 9 ermFrancisco Fambrini
1.5K views50 Folien

Más contenido relacionado

Similar a Laudo assinado pelo professor Mario Gazziro sobre áudios atribuídos a Augusto Heleno

DESENVOLVIMENTO E AVALIAÇÃO DE DESEMPENHO DO MECANISMO DE RECONHECIMENTO AUTO... von
DESENVOLVIMENTO E AVALIAÇÃO DE DESEMPENHO DO MECANISMO DE RECONHECIMENTO AUTO...DESENVOLVIMENTO E AVALIAÇÃO DE DESEMPENHO DO MECANISMO DE RECONHECIMENTO AUTO...
DESENVOLVIMENTO E AVALIAÇÃO DE DESEMPENHO DO MECANISMO DE RECONHECIMENTO AUTO...Leinylson Fontinele
901 views89 Folien
18.ago ouro i 14.15_320_light von
18.ago ouro i 14.15_320_light18.ago ouro i 14.15_320_light
18.ago ouro i 14.15_320_lightitgfiles
458 views34 Folien
InfiiniVision - A nova geração de Instrumentos de Testes de Sinais Mistos von
InfiiniVision - A nova geração de Instrumentos de Testes de Sinais MistosInfiiniVision - A nova geração de Instrumentos de Testes de Sinais Mistos
InfiiniVision - A nova geração de Instrumentos de Testes de Sinais MistosPareseletronica
348 views52 Folien
Cruz jose von
Cruz joseCruz jose
Cruz joseKássio Alves Freire
294 views177 Folien
Ferramenta virtual von
Ferramenta virtualFerramenta virtual
Ferramenta virtualDanilo Braga
181 views8 Folien
Proconf softwear confiabilidade von
Proconf softwear confiabilidadeProconf softwear confiabilidade
Proconf softwear confiabilidadeErico Pontes Melo
498 views8 Folien

Similar a Laudo assinado pelo professor Mario Gazziro sobre áudios atribuídos a Augusto Heleno(6)

DESENVOLVIMENTO E AVALIAÇÃO DE DESEMPENHO DO MECANISMO DE RECONHECIMENTO AUTO... von Leinylson Fontinele
DESENVOLVIMENTO E AVALIAÇÃO DE DESEMPENHO DO MECANISMO DE RECONHECIMENTO AUTO...DESENVOLVIMENTO E AVALIAÇÃO DE DESEMPENHO DO MECANISMO DE RECONHECIMENTO AUTO...
DESENVOLVIMENTO E AVALIAÇÃO DE DESEMPENHO DO MECANISMO DE RECONHECIMENTO AUTO...
18.ago ouro i 14.15_320_light von itgfiles
18.ago ouro i 14.15_320_light18.ago ouro i 14.15_320_light
18.ago ouro i 14.15_320_light
itgfiles458 views
InfiiniVision - A nova geração de Instrumentos de Testes de Sinais Mistos von Pareseletronica
InfiiniVision - A nova geração de Instrumentos de Testes de Sinais MistosInfiiniVision - A nova geração de Instrumentos de Testes de Sinais Mistos
InfiiniVision - A nova geração de Instrumentos de Testes de Sinais Mistos
Pareseletronica348 views

Laudo assinado pelo professor Mario Gazziro sobre áudios atribuídos a Augusto Heleno

  • 1. PARECER TÉCNICO NCFA001-23 __________________________________________________________________ REVISTA FÓRUM CONSULENTE Santo André, 25 de setembro de 2023 ___________________________________________________________________________________________ NCFA - Núcleo de Computação Forense Aplicada (USP e UFABC) Sede: Av. dos Estados, 5001 4o andar, Bloco L - Santo André, SP, CEP 09210-580 Tel.: (11) 3356-7676 (ramal 7676)
  • 2. Contexto Atendendo à solicitação da Revista Fórum, foram analisados áudios que circularam em grupos de whatsapp e telegram em outubro de 2022, os quais incitavam a população a incorrer em distúrbios civis e alegando categóricamente que as forças armadas iriam tomar partido nessa iniciativa. Tais áudios foram atribuídos na época ao então ministro do Gabinete de Segurança Institucional, General Augusto Heleno, o qual negou em seu X (à época Twitter) a autoria dos mesmos, assim como nota oficial do GSI negou a atribuição ao seu então chefe. Na ocasião, apenas a negativa oficial por parte do acusado (e de seus subordinados) foram tratadas como suficientes pela imprensa da época para categorizar a disseminação de tais áudios atribuídas ao general como Fake News, sendo que um autor efetivo nunca foi responsabilizado por tal ato. No entanto, a gravidade dos acontecimentos dos meses subsequentes que culminaram nos eventos catastróficos de destruição de patromônio público no dia 8 de janeiro de 2023 em Brasilia, DF, chamou a atenção da sociedade e dos meios de imprensa, assim como dos pesquisadores acadêmicos, de modo que se iniciou uma revisão dos fatores que levaram a esse fenômeno, tendo sido implantada inclusive uma Comissão Parlamentar Mista de Inquérito no Senado Federal. Dentro desse contexto, foi considerado revisar a busca do verdadeiro autor que tenha criado tais áudios subversivos, enfáticos e categóricos, e o ponto de partida para essa busca incorreria justamente em primeiramente isentar de forma técnica e definitiva a alegação de atribuição ao seu suposto autor, General Augusto Heleno. Eis que para nossa surpresa, ao realizar o mesmo protocolo de análise e comparação de biometria vocal - o qual já foi utilizado várias vezes por nosso laboratório para inocentar figuras de destaque nacional - constatamos, após análise de 40 partições, que os áudios PERTENCEM AO SUPOSTO AUTOR, com intervalo de confiança de 87%, em uma análise conclusiva de confirmação de sua autoria, visto o resultado estar acima de 85%.
  • 3. METODOLOGIA Em função da suspeita de uso de tecnologias que fazem uso das chamadas deepfake news, o uso de técnicas convencionais de análise forense de áudio – a listar: análises perceptivo-auditivas (segmentais, suprassegmentais, fatores paralinguísticos e dialetais), análises acústicas, frequência fundamental F0, formantes e até mesmo VOT (tempo de ataque de vozeamento) – não foi recomendado, justamente pelo fato de que tais análises são susceptíveis de serem enganadas pela nova tecnologia. Adotamos então um método mais novo e mais robusto contra esse novo advento tecnológico e ameaçador, que são as deepfake news, a chama análise de coeficientes cepstrais em escala Mel, ou MFCC, a qual produz uma biometria vocal do interlocutor, através da geração de um mapa gráfico de características pertinentes a nuances do seu trato vocal, o qual tem características únicas de pessoa para pessoa, similar a impressão digital. Tal método foi elaborado em 2004 e publicado cientificamente por Hasan et al, descrito no artigo “SPEAKER IDENTIFICATION USING MEL FREQUENCY CEPSTRAL COEFFICIENTS”, de Hasan, R. et al. E apresentado na 3rd International Conference on Electrical Computer Engineering ICECE 2004 em dezemro de 2004.
  • 4. RESULTADOS A figura a seguir apresenta o mapa cepstral da voz do General Augusto Heleno, criado a partir de uma entrevista dele no Youtube (www.youtube.com/watch?v=PmnRD564_h0) cuja autenticidade é inquestionável devido a natureza oficial do video (canalGOV, a Voz do Brasil). Já os suspostos áudios atribuídos ao General Augusto Heleno que foram enviados ao pesquisador por representante da Revista Fórum foram disponibilizados em seu canal no Youtube, cujos links são apresentados aqui: https://youtu.be/KM8XO5AguSc e https://youtu.be/BefrwT-WFm4. Todos os videos foram segmentados manualmente em trechos com cerca de 6 segundos, garantindo que cada trecho se referisse apenas à voz do indivíduo analisado, de forma a garantir que não ocorriam ruidos ambientes durante a fala e de que o trecho da fala pertencesse ao individuo investigado, e não a algum locutor no ambiente. Feito isso, foi aplicada a análise técnica descrita na seção anterior em 40 partições desses áudios, que geraram os referidos mapas de biometria de voz (que pode ser entendidos com se fossem a impressão digital da voz, tal qual uma impressão do polegar identifica unicamente uma pessoa), os quais por sua vez tiveram sua verosimilhança atestada com um método de inteligência artificial não supervisionado chamado KNN (rede de vizinhos).
  • 5. CONCLUSÃO Portanto, as evidências indicam que os áudios PERTENCEM AO SUPOSTO AUTOR, com intervalo de confiança de 87%, em uma análise conclusiva de confirmação de sua autoria, visto o resultado estar acima de 85%. Eventuais divergências ou contestações de qualquer natureza quanto à apropriação aos falantes deverão ser prontamente e formalmente submetidas pelos consulentes aos subscritores no endereço indicado abaixo, para avaliação técnica e, caso sejam consideradas procedentes, imediata republicação do parecer ou edição de adendo. Caso seja necessário, outras análises poderão ser eventualmente apresentas em parecer técnico complementar. Os consulentes, ao receberem, utilizarem ou divulgarem o presente parecer ou as informações nele contidas, automaticamente concordam em assumir exclusivamente para si as responsabilidades pertinentes, comprometendo-se a isentar e proteger os pesquisadores do Núcleo de Computação Forense Aplicada de qualquer reivindicação eventualmente resultante. Encerra-se o presente parecer técnico que contém 07 folhas, sendo esta, datada e assinada. Santo André, 25 de setembro de 2023 _________________________ Dr. Mario Gazziro Pesquisador UFABC ___________________________________________________________________________________________ NCFA - Núcleo de Computação Forense Aplicada (USP e UFABC) Sede: Av. dos Estados, 5001 4o andar, Bloco L - Santo André, SP, CEP 09210-580 Tel.: (11) 3356-7676 (ramal 7676)
  • 6. LISTAGEM DE CÓDIGOS-FONTE EM MATLABTM OS CÓDIGOS E ÁUDIOS ORIGINAIS ESTÃO DISPONÍVEIS NA PLATAFORMA GITHUB DO PESQUISADOR: https://github.com/mariogazziro/reconhecimento_de_voz/blob/main/heleno.zip clear all; close all; clc; %%%%%%%%%%%%%%%%%%%%%%%%%%% % Define variables % analysis frame duration (ms) Tw = 25; Ts = 10; % analysis frame shift (ms) alpha = 0.97; % preemphasis coefficient M=20; % number of filterbank channels C=12; % number of cepstral coefficients L=22; % cepstral sine lifter parameter LF = 300; % lower frequency limit (Hz) HF = 3700; % upper frequency limit (Hz) wav_file = 'controle1.wav'; % input audio filename % Read speech samples, sampling rate and precision from file [ audioIn, fs] = audioread( wav_file ); % Feature extraction (feature vectors as columns) [ MFCCs, FBEs, frames ] = ... mfcc( audioIn, fs, Tw, Ts, alpha, @hamming, [LF HF], M, C+1, L ); % Generate data needed for plotting % frame length and number of frames [ Nw, NF ] = size( frames ); time_frames = [0:NF-1]*Ts*0.001+0.5*Nw/fs; % time vector (s) for frames time = [ 0:length(audioIn)-1 ]/fs; % time vector (s) for signal samples logFBEs = 20*log10( FBEs ); % compute log FBEs for plotting logFBEs_floor = max(logFBEs(:))-50; % get logFBE floor 50 dB below max logFBEs( logFBEs<logFBEs_floor ) = logFBEs_floor; % limit logFBE dynamic range % Generate plots figure('Position', [30 30 800 600], 'PaperPositionMode', 'auto', ... 'color', 'w', 'PaperOrientation', 'landscape', 'Visible', 'on' ); subplot( 211 ); plot( time, audioIn, 'b' ); xlim( [ min(time_frames) max(time_frames) ] ); xlabel( 'Tempo (s)' ); ylabel( 'Amplitude' ); title( 'Voz original de Ciro Gomes (www.youtube.com/watch?v=cfaKlpu1ywU'); subplot( 212 ); imagesc( time_frames, [1:C], MFCCs(2:end,:) ); % HTK's TARGETKIND: MFCC axis( 'xy' ); xlim( [ min(time_frames) max(time_frames) ] ); xlabel( 'Tempo (s)' ); ylabel( 'Cepstrum' ); title( 'Coeficientes cepstrum nas frequências Mel' ); % Set color map to grayscale colormap( 1-colormap('jet') ); controle1=MFCCs(2:13,[1:600])'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Define variables % analysis frame duration (ms) Tw = 25; Ts = 10; % analysis frame shift (ms) alpha = 0.97; % preemphasis coefficient M=20; % number of filterbank channels C=12; % number of cepstral coefficients L=22; % cepstral sine lifter parameter LF = 300; % lower frequency limit (Hz) HF = 3700; % upper frequency limit (Hz) wav_file = 'controle2.wav'; % input audio filename % Read speech samples, sampling rate and precision from file [ audioIn, fs] = audioread( wav_file ); % Feature extraction (feature vectors as columns) [ MFCCs, FBEs, frames ] = ... mfcc( audioIn, fs, Tw, Ts, alpha, @hamming, [LF HF], M, C+1, L ); % Generate data needed for plotting % frame length and number of frames [ Nw, NF ] = size( frames ); time_frames = [0:NF-1]*Ts*0.001+0.5*Nw/fs; % time vector (s) for frames time = [ 0:length(audioIn)-1 ]/fs; % time vector (s) for signal samples logFBEs = 20*log10( FBEs ); % compute log FBEs for plotting logFBEs_floor = max(logFBEs(:))-50; % get logFBE floor 50 dB below max logFBEs( logFBEs<logFBEs_floor ) = logFBEs_floor; % limit logFBE dynamic range % Generate plots figure('Position', [30 30 800 600], 'PaperPositionMode', 'auto', ... 'color', 'w', 'PaperOrientation', 'landscape', 'Visible', 'on' ); ________________________________________________________________________________________ NCFA - Núcleo de Computação Forense Aplicada (USP e UFABC) Sede: Av. dos Estados, 5001 - 4o andar, Bloco L - Santo André, SP, CEP 09210-580 Tel.: (11) 3356-7676 (ramal 7676)
  • 7. subplot( 211 ); plot( time, audioIn, 'b' ); xlim( [ min(time_frames) max(time_frames) ] ); xlabel( 'Tempo (s)' ); ylabel( 'Amplitude' ); title( 'Áudio de controle 2'); subplot( 212 ); imagesc( time_frames, [1:C], MFCCs(2:end,:) ); % HTK's TARGETKIND: MFCC axis( 'xy' ); xlim( [ min(time_frames) max(time_frames) ] ); xlabel( 'Tempo (s)' ); ylabel( 'Cepstrum' ); title( 'Coeficientes cepstrum nas frequências Mel' ); % Set color map to grayscale colormap( 1-colormap('jet') ); controle2=MFCCs(2:13,[1:600])'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Define variables % analysis frame duration (ms) Tw = 25; Ts = 10; % analysis frame shift (ms) alpha = 0.97; % preemphasis coefficient M=20; % number of filterbank channels C=12; % number of cepstral coefficients L=22; % cepstral sine lifter parameter LF = 300; % lower frequency limit (Hz) HF = 3700; % upper frequency limit (Hz) wav_file = 'amostra.wav'; % input audio filename % Read speech samples, sampling rate and precision from file [ audioIn, fs] = audioread( wav_file ); % Feature extraction (feature vectors as columns) [ MFCCs, FBEs, frames ] = ... mfcc( audioIn, fs, Tw, Ts, alpha, @hamming, [LF HF], M, C+1, L ); % Generate data needed for plotting % frame length and number of frames [ Nw, NF ] = size( frames ); time_frames = [0:NF-1]*Ts*0.001+0.5*Nw/fs; % time vector (s) for frames time = [ 0:length(audioIn)-1 ]/fs; % time vector (s) for signal samples logFBEs = 20*log10( FBEs ); % compute log FBEs for plotting logFBEs_floor = max(logFBEs(:))-50; % get logFBE floor 50 dB below max logFBEs( logFBEs<logFBEs_floor ) = logFBEs_floor; % limit logFBE dynamic range % Generate plots figure('Position', [30 30 800 600], 'PaperPositionMode', 'auto', ... 'color', 'w', 'PaperOrientation', 'landscape', 'Visible', 'on' ); subplot( 211 ); plot( time, audioIn, 'b' ); xlim( [ min(time_frames) max(time_frames) ] ); xlabel( 'Tempo (s)' ); ylabel( 'Amplitude' ); title( 'Áudio de amostra a ser testado'); subplot( 212 ); imagesc( time_frames, [1:C], MFCCs(2:end,:) ); % HTK's TARGETKIND: MFCC axis( 'xy' ); xlim( [ min(time_frames) max(time_frames) ] ); xlabel( 'Tempo (s)' ); ylabel( 'Cepstrum' ); title( 'Coeficientes cepstrum nas frequências Mel' ); % Set color map to grayscale colormap( 1-colormap('jet') ); amostra=MFCCs(2:13,[1:600])'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X=[amostra;controle1]; Y(1:600)="Amostra"; Y(601:1200)="Controle"; Y=Y'; mdl = fitcknn(X,Y,'NumNeighbors',12,'Standardize',1); rloss = resubLoss(mdl) % The classifier predicts incorrectly for XX% of the training data. 3,08% [label,score,cost] = predict(mdl,controle2) mean(score(:,1)) mean(score(:,2)) ___________________________________________________________________________________________ NCFA - Núcleo de Computação Forense Aplicada (USP e UFABC) Sede: Av. dos Estados, 5001 4o andar, Bloco L - Santo André, SP, CEP 09210-580 Tel.: (11) 3356-7676 (ramal 7676)