380 likes | 704 Views
Voicebox – Matlab toolbox. Marcelo Lucena de Souza mls2@cin.ufpe.br Análise de Voz e Vídeo. Roteiro. Signal Processing LPC Analysis of Speech Random Numbers and Probability Distributions. Signal Processing. findpeaks maxfilt meansqrt zerocross ditherq schmitt dlyapsq momfilt.
E N D
Voicebox – Matlab toolbox Marcelo Lucena de Souza mls2@cin.ufpe.br Análise de Voz e Vídeo
Roteiro • Signal Processing • LPC Analysis of Speech • Random Numbers and Probability Distributions
Signal Processing • findpeaks • maxfilt • meansqrt • zerocross • ditherq • schmitt • dlyapsq • momfilt
findpeaks (Signal Processing) • Encontraospicos de um sinalusandointerpolaçãoquadrática • Uso: • [k,v]=findpeaks(x,m,w) • Entradas • x → sinal de entrada • m → modo • 'q' interpolaçãoquadrática • 'v' encontraos vales aoinvés dos picos • w → tolerância, picosfora do intervalo +-w sãoignorados • Saídas • k → localização dos picos • V → amplitude dos picos
findpeaks - Exemplo • Sinal de entrada: m='q' w=1
findpeaks - Exemplo • Saída: k → peak locations
Findpeaks - Exemplo • Saída: v → peak amplitudes
maxfilt (Signal Processing) • Encontra o máximovalor do sinaldentro de umajanelaponderadaexponencialmente • Uso: [y,k]=maxfilt(x,f,w) • Entradas • x → sinal de entrada • f → fator de esquecimentoexponencial [f = exp(-1/T)]. f=1 paranenhumesquecimento • w → janela de +-w • Saídas • y → vetor de saída (mesmotamanho de x) • k → array de índices, y=x(k)
maxfilt - Exemplo • [y,k]=maxfilt(x,1,9)
maxfilt - Exemplo • Resultado
meansqrtf (Signal Processing) • Calcula a média quadrática da função de transferência de um filtro • Uso: d=meansqtf(b,a) • Entrada • b → coeficientes do numerador da F.T. do filtro • a → coeficientes do denominador da F.T. Do filtro • Saída • d → nova função de transferência
meansqrtf - Exemplo • Filtro de Pré-Enfase • H(z) = 1 – 0.95/z • b = [1 -0.95] • a = 1 • Resultado • d=meansqtf(b,a) • d = 1.9025
windows – (Signal Processing) • Gera umafunção de janela • Uso: w = windows(wtype,n,mode,p) • Entrada: • wtype → tipodajanela (Hamming, Hanning, Kaiser,...) • n → número de pontos • Mode → sequencia de 3 caracteres de configuraçãodajanela. Padrão 'ubv'. • p → parâmetroespecíficospara a janela • Saída: • w → funçãojanela
windows – Exemplo • Janela de Hamming • w = windows('hamming',100)
windows – Exemplo • Hamming
zerocros (Signal Processing) • Encontra as passagens pelo zero de um sinal • Uso: [t,s]=zerocros(x,m) • Entrada • x → sinal • m → modo, pode ser passagens positivas, negativas ou ambas (padrão) • Saída • t → posições das passagens pelo zero • s → inclinação estimada na passagem pelo zero
ditherq (Signal Processing) • Adicionadither e quantiza o sinal. Dither é a adição de um ruídopararandomizar o erro de quantização. • Uso: [y,zf]=ditherq(x,m,zi) • Entrada • X → sinal de entrada • M → modo. Tipo do dither: ruídobranco (padrão), passa-alta, passa-baixa, sem dither. • Zi → númerorandômico • Saída • y → sinal de saída • zf → númerorandômico
schmitt (Signal Processing) • Passa o sinalpor um schmitt trigger • Uso: [y,t]=schmitt(x,thresh,minwid) • Entrada • x → sinal de entrada • thresh → vetor com oslimiares superior e inferior do schmitt trigger • midwin → larguramínima. Pulsosmenoresquemidwinsãoignorados • Saída • y → sinal de saída • t → contém o índice das amostrasnaqual x atravessouoslimiares
schmitt - Exemplo • y = schmitt(x, [-0.05 0.05]);
dlyapsq (Signal Processing) • Soluciona a equação de Lyapunov (AV'VA' - V'V +BB' =0), usada na análise de estabilidade em teoria do controle • Uso: v=dlyapsq(a,b) • Entrada • a, b → parametros da equação • Saída • V → solução da equação
momfilt (Signal Processing) • Calcula o momento de um sinalusandoumajanela • Uso: [y,mm]=momfilt(x,r,w,m) • Entrada • x → sinal de entrada • r → lista de momentos (relativo a médiaou a zero) • w → janela (hamming é o padrão) • m → índice de w usadocomocentro (padrão é o meio) • Saída • y → sinal de saída • mm → m usado no momento
LPC Analysis of Speech • lpcauto • lpccovar • lpcrr2am • lpcbwexp • ccwarpf • lpcifilt • lpcrand
lpcauto (LPC) • Realiza a análise LPC baseadanaautocorrelação • Uso: [ar,e,k]=lpcauto(s,p,t) • Entrada • s → sinal de entrada • p → ordemdaanálise (Padrão: 12) • t → vetor com parametrosopcionais dos frames • Saída • ar → coeficientes LPC • e → energia do sinal residual • k → primeira e últimaamostra do intervalo de análise
lpcauto - Exemplo • x = sinal dos exemplos anteriores • [ar e k] = lpcauto(x); • ar = [1.0000 -1.0169 0.0903 0.4222 -0.2532 -0.2300 0.5742 -0.2297 -0.2633 0.1441 0.1043 -0.0837 -0.0438] • e = 0.0038 • k = [1 100]
lpccovar (LPC) • Realiza a análise LPC baseadanacovariância • Uso: [ar,e,dc]=lpccovar(s,p,t,w) • Entrada • s → sinal de entrada • p → ordemdaanálise (Padrão: 12) • t → parametrosopcionais dos frames • w → erro de ponderaçãoparacadaamostra (Padrão: 1) • Saída • ar → coeficientes LPC • e → energia do sinal residual • dc → componente DC do sinal de entrada
lpccovar - Exemplo • x = mesmo sinal do exemplo anterior • [ar e dc] = lpccovar(x); • ar = [1.0000 -1.1087 0.4279 0.0894 0.0695 -0.2697 0.3888 -0.0864 -0.3764 0.3216 0.0043 -0.0714 -0.0445] • e = [0.0145 0.0512] • dc = -1.5469e-04
lpcrr2am (LPC) • Converte coeficientes de autocorrelação para a matriz de autocorrelação • Uso: [am,em]=lpcrr2am(rr); • Entrada • Rr → coeficientes • Saída • Am → matriz de autocorrelação (Toeplitz) • Em → coeficientes LPC
lpcbwexp (LPC) • Expande a largura de banda do filtro LPC • Uso: arx=lpcbwexp(ar,bw) • Entrada • ar → coeficientes LPC • bw → largura de banda mínima a ser expandida • Saída • arx → novos coeficientes LPC
ccwarpf (LPC) • Realiza warping de coeficientes cepstral • Uso: m=ccwarpf(f,n,s) • Entrada • F → [f1 f2], vetor com a frequencia de amostragem original (f1) e a nova frequencia de amostragem (f2) • N → [n1 n2], vetor com o número original de coeficientes (n1) e o novo número (n2). • S → escala linear, 'l' ou mel, 'm' • Saída • m → matriz de transformação
lpcifilt (LPC) • Aplicafiltroinverso no sinal de voz. Usadonaestimação do glottal waveform. • Uso: u=lpcifilt(s,ar,t,dc,fade) • Entrada • S → sinal de voz • Ar → coeficientes LPC • T → índicedaprimeiraamostra • Dc → Componente DC a ser subtraído do sinal • Fade → amostras de fade • Saída • U → resultado do filtro
lpcrand (LPC) • Gera polinômio randômico estável de ordem p. Usado para fins de teste. • Uso: ar=lpcrand(p,n,bw) • Entrada • P → ordem do polinômio • N → número de polinômios a serem gerados • Bw → largura de banda • Saída • Ar → coeficientes do(s) polinômio(s) gerado(s)
lpcrand - Exemplo • teste = lpcrand(12,1); • teste = [1.0000 -0.1091 -0.2139 -0.7055 -0.3406 0.6335 0.5740 -0.0618 -0.3154 -0.1504 -0.2432 0.3939 -0.3346]
Random Numbers and Probability Distributions • Random Number Generation • Randvec • Randiscr • Usasi • Randfilt • Rnsubset • Probability Density Functions • Gmmlpdf • Lognmpdf • Miscellaneous • Histndim • Gausprod • Maxgauss
histndim • Gera e ou plota um histograma n-dimensional • Uso: [v,t]=histndim(x,b,mode) • Entrada • X -> dados de entrada, x = (m,d) • B -> níveis do histograma para cada dimensão • Mode -> configuração • Saída • V -> histograma • T -> dimensão do histograma
histndim - Exemplo • [v t] = histndim(v1,20,'h');
Referências • Voicebox home page • http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html • Wikipedia • http://em.wikipedia.org