• Nenhum resultado encontrado

15 de Maio de No trabalho foi usado o sinal english.wav. A leitura do sinal foi feita com a função read audio fornecida.

N/A
N/A
Protected

Academic year: 2021

Share "15 de Maio de No trabalho foi usado o sinal english.wav. A leitura do sinal foi feita com a função read audio fornecida."

Copied!
5
0
0

Texto

(1)

Fundamentos de Computac¸˜ao Gr´afica - Trabalho 2

Jo˜ao Carlos Virgolino Soares

15 de Maio de 2018

1 Leitura do sinal

No trabalho foi usado o sinal ’english.wav’. A leitura do sinal foi feita com a func¸˜ao read audio fornecida.

2 Pre-Emphasis

O primeiro passo do algoritmo ´e aplicar um filtro pr´e-ˆenfase no sinal. A figura 1 mostra o sinal antes do filtro. A figura 2 mostra o sinal ap´os a aplicac¸˜ao do filtro, com α = 0.95.

Figura 1: Sinal no dom´ınio do tempo

Figura 2: Sinal no dom´ınio do tempo ap´os a pr´e-ˆenfase

3 Short-frames

A func¸˜ao mostrada a seguir divide o sinal em short frames. O tamanho escolhido de cada frame foi de 25 ms, com um frame step de 10 ms.

def s h o r t f r a m e s ( signal , srate , f r a m e _ s i z e 0 , s t e p 0 ): s f r a m e _ l e n g t h = int ( f r a m e _ s i z e 0 * s r a t e ) p r i n t " f r a m e _ l e n g t h :" , s f r a m e _ l e n g t h f r a m e _ s t e p = s t e p 0 * s r a t e 5 s i g n a l _ l e n g t h = len ( s i g n a l ) p r i n t " s i g n a l _ l e n g t h :" , s i g n a l _ l e n g t h

(2)

n _ s f r a m e s = int ( np .c e i l(( len ( d a t a ) - s f r a m e _ l e n g t h ) / 10 f l o a t ( f r a m e _ s t e p ))) z _ s i g n a l _ l e n g t h = n _ s f r a m e s * f r a m e _ s t e p + s f r a m e _ l e n g t h z = np .z e r o s( int ( z _ s i g n a l _ l e n g t h - s i g n a l _ l e n g t h )) s i g n a l _ z = np . a p p e n d ( signal , z ) ind = np .z e r o s(( n _ s f r a m e s , s f r a m e _ l e n g t h )) 15 for i in r a n g e (0 , n _ s f r a m e s ): ind [ i ] = np . a r a n g e ( i * f r a m e _ s t e p , i * f r a m e _ s t e p + s f r a m e _ l e n g t h ) 20 ind = ind . a s t y p e ( np . i n t 3 2 ) s f r a m e s = s i g n a l _ z [ ind ] r e t u r n sframes , n _ s f r a m e s , s f r a m e _ l e n g t h 4 Window

No pr´oximo passo foi aplicada a func¸˜ao window Hamming para cada frame, mostrada no c´odigo a seguir.

for i in r a n g e (0 , n _ f r a m e s ):

for n in r a n g e (0 , f r a m e _ l e n g t h ): f r a m e s [ i , n ] = f r a m e s [ i , n ]*

( 0 . 5 4 - 0 . 4 6 * np .cos( ( 2 * np .pi* n )/( f r a m e _ l e n g t h - 1 ) ) ) 5 Mel Filter bank

Em seguida foi calculado o power spectrum para cada quadro, usando 512 pontos na FFT, e aplicado o mel filterbank aos power spectra. A func¸˜ao mel filterbank, mostrada a seguir, cal-cula o mel filter bank, dadas as frequˆencias m´axima e m´ınima e o n´umero de filtros. Foram usados 40 filtros triangulares. As func¸˜oes auxiliares hz to mel e mel to hz fazem a convers˜ao entre frequˆencia e escala Mel.

def h z _ t o _ m e l ( hz ): m = 2 5 9 5 . 0 * np .l o g 1 0( 1 + ( hz / 7 0 0 . 0 ) ) r e t u r n m 5 def m e l _ t o _ h z ( m ): hz = 7 0 0 * ( 1 0 * * ( m / 2 5 9 5 . 0 ) - 1 ) r e t u r n hz 10 def m e l _ f i l t e r b a n k ( l o w e r _ f r e q , u p p e r _ f r e q , n f i l t e r s ): m _ l o w e r _ f r e q = h z _ t o _ m e l ( l o w e r _ f r e q )

(3)

m _ u p p e r _ f r e q = h z _ t o _ m e l ( u p p e r _ f r e q ) 15 mel = np .l i n s p a c e( m _ l o w e r _ f r e q , m _ u p p e r _ f r e q , n f i l t e r s + 2) h = m e l _ t o _ h z ( mel ) f = ( np .f l o o r(( N f f t + 1) * h / r a t e )) f b a n k s = np .z e r o s(( n f i l t e r s , int ( np .f l o o r(( N f f t / 2) + 1 ) ) ) ) 20 for m in r a n g e (1 , n f i l t e r s + 1):

for k in r a n g e ( int ( f [ m - 1]) , int ( f [ m ] ) ) :

f b a n k s [ m - 1 , k ] = ( k - f [ m - 1]) / ( f [ m ] - f [ m - 1])

for k in r a n g e ( int ( f [ m ]) , int ( f [ m + 1 ] ) ) :

25 f b a n k s [ m - 1 , k ] = ( f [ m + 1] - k ) / ( f [ m + 1] - f [ m ]) r e t u r n f b a n k s n _ f i l t e r s = 40 l o w _ f r e q = 0 30 u p _ f r e q = 4 0 0 0 f b a n k = m e l _ f i l t e r b a n k ( l o w _ f r e q , up_freq , n _ f i l t e r s ) p l o t _ f b a n k ( fbank , rate , l o w _ f r e q ) 35 f i l t e r _ b a n k s = np .dot( p_spec , f b a n k . T ) f i l t e r _ b a n k s = np .l o g 1 0( f i l t e r _ b a n k s ) p l o t _ s p e c t r o g r a m ( f i l t e r _ b a n k s )

A figura 3 mostra os filtros na escala mel se sobrepondo. Cada filtro tem resposta 1 na frequˆencia central, que decai linearmente at´e 0. A figura 4 mostra o espectrograma do sinal ap´os aplicar o mel filter bank aos power spectra e o logaritmo.

(4)

Figura 4: Espectrograma do Sinal

6 DCT do log das Filter banks

Em seguida foi calculada o DCT do log das filterbank energies, conforme mostrado abaixo, para obter os MFCCs. n u m _ c e p s = 12 m f c c = dct ( f i l t e r _ b a n k s )[: , 1 : ( n u m _ c e p s + 1)] ( nf , nc ) = m f c c . s h a p e 5 i = np . a r a n g e ( nc ) D = 23 l i f t e r = 1+( D / 2 ) + np .sin( np .pi* i / D ) m f c c *= l i f t e r 10 p l o t _ m f c c ( n u m _ c e p s , m f c c )

O sinusoidal liftering foi aplicado aos MFCCs, de acordo com a equac¸˜ao 1.

ωi= 1 +

D

2sin(iπ/2) (1)

(5)

Referências

Documentos relacionados

Posteriormente, são apresentados resultados de ensaios cíclicos recentes na Universidade do Minho sobre esta tipologia de paredes, que permitem caracterizar o seu comportamento

••  Alimentação racional e desvios ali  Alimentação racional e desvios alimentares mentares ••  Actividade física e repouso  Actividade física e repouso.. ••

O nosso objetivo foi trazer poesia para o texto acadêmico costurando, com pedacinhos de crônicas do livro Se eu pudesse viver minha vida novamente, uma narrativa que

b) O professor/colaborador não aufere de rendimento para a colaboração mas sim de um valor para a deslocação, determinado por decreto governamental, que de momento é de 0,36€

Subordinada a Diretoria Executiva, tem como competência as atividades de desenvolvimento de protocolo, registros dos profissionais médicos veterinários e zootecnistas, registro

As informações básicas sobre a forma de acesso às referências bibliográficas e ao material de apoio, as propostas de atividades, bem como os aplicativos necessários para

A solução, inicialmente vermelha tornou-se gradativamente marrom, e o sólido marrom escuro obtido foi filtrado, lavado várias vezes com etanol, éter etílico anidro e

§ 1º Os (as) atletas ficam cientes que deverão assumir, no ato da inscrição, todos os riscos e danos da eventual suspensão da corrida (iniciada ou não) por