speech chord - a voice search app for music chords

Post on 15-Apr-2017

318 Views

Category:

Mobile

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Speech Chord: Dicionário de AcordesHEITOR NASCIMENTO - heitornsouza@gmail.com

C9#11

Heitor NascimentoEngenheiro de Software no CESAR, tem experiência com as aplicações móveis e web. Já trabalhou com as tecnologias como: Android, Java Web, Ruby on Rails e Salesforce.

Atualmente desenvolve aplicações webs utilizando plataformas na nuvem.

1 Speech Chord

O QUE É?1. Dicionário de acordes de guitarra;

2. Baseado em cifras;

3. Reconhecimento de voz para busca de acordes;

4. Plataforma Android.

2 TEORIa musical

ACORDESAcorde é uma combinação de sons simultâneos (acorde harmônico) ou sucessivos quando arpejados, tocados individualmente (acorde arpejado) [CHEDIAK, 1986].

TIPOS DE ACORDES1. Maiores;

2. Menores;

3. Sétima da dominante;

4. Sétima diminuta.

Modo Acorde Cifrado

Maior C

Menor Cm

Sétima Dominante C7

Sétima Diminuta Cº

CIFRAS1. Notação musical baseada em acordes;

2. Não fornece informação detalhada sobre a música como: tonalidade, ritmo, altura da notas(grave, médio, agudo) e duração da notas;

3. Popular entre iniciantes.

3 APPS MUSICAIS

SIMILARES

RECURSOS DA APLICAÇÃO SPEECH CHORD 1. Plataforma Android;

2. Reconhecimento de voz (Speech Recognizer API);

3. Analisador Léxico e Sintático;

4. Áudio estático.

RECONHECIMENTO DE VOZ API1. Speech Recognizer Service (no dialog);

2. Recognizer Intent (dialog approach).

RECONHECIMENTO DE VOZ COM DIALOG PackageManager packageManager = getPackageManager();Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

List<ResolveInfo> activities = packageManager.queryIntentActivities(intent,0);

if (activities.size() == 0) { /* Aparelho Nao Suporta Reconhecimento de Voz */ Toast.makeText(this, getResources().getString(R.string.notSupported), Toast.LENGTH_SHORT).show();} else { intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); intent.putExtra(RecognizerIntent.EXTRA_PROMPT, getResources() .getString(R.string.speak)); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "pt-BR"); startActivityForResult(intent, REQUEST_CODE_CHORD);}

RECONHECIMENTO DE VOZ COM DIALOG @Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == REQUEST_CODE_CHORD && resultCode == RESULT_OK) {ArratList<String> resultList = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);startScan(); }}

RESULTADO DA BUSCA

RESULTADO DA BUSCA / ANALISE LÉXICA

Criação de tokens;

Identificar se um conjuntos de palavras estão contidos em um alfabeto (Gramática livre de contexto);

Repassa os tokens para analisador sintático.

CRIA

IDENTIFICA

REPASSA

ANALISE LÉXICA

1. Criação de tokens

2. Identificar se um conjuntos de palavras estão contidos em alfabeto(Gramática livre de contexto).

3. Repassa os tokens para analisador sintático.

<acorde> ::=<nota><modalidade><nota> ::= A | B | C | D | E | F | G<modalidade> ::= m | λ

ANALISE SINTÁTICA

1. Criação da tabela de símbolos;

2. Análise de sequência de tokens gerados pelo analisador léxico.

<acorde> ::=<nota><modalidade><nota> ::= A | B | C | D | E | F | G<modalidade> ::= m | λ

NA PRÁTICA!

CODE!LET’S

SPEECH CHORD - DRAWBACK

AUDIO CHORD DRAWBACK

1. Arquivos estáticos;

2. Um arquivo por acorde.

PROCESSAMENTO DE AUDIO DIGITAL

Propriedades do audio:1. Pitch ou Frequência;

2. Amplitude;

3. Timbre;

4. Duração;

5. Articulação ou Envelope;

6. Difusão.

PROCESSAMENTO DE AUDIO DIGITAL

Propriedades do audio:1. Pitch ou Frequência;

2. Amplitude;

3. Timbre;

4. Duração;

5. Articulação ou Envelope;

6. Difusão.

PROCESSAMENTO DE AUDIO DIGITALComo tocar um acorde digitalmente?

PROCESSAMENTO DE AUDIO DIGITALVamos para matemática!

PROCESSAMENTO DE AUDIO DIGITAL

1. Notas

A B C D E F G A

2. Oitava A B C D E F G A

PROCESSAMENTO DE AUDIO DIGITAL

1. Notas

A B C D E F G A

2. Oitava A B C D E F G AEm uma oitava há 12 semitones

PROCESSAMENTO DE AUDIO DIGITALEm uma oitava há 12 semitones.

PROCESSAMENTO DE AUDIO DIGITAL

Oitava A B C D E F G A

Oitavas crescem na razão 2

A = 440 hz A-oitavado = 880 hz

PROCESSAMENTO DE AUDIO DIGITALComo calcular a frequência de uma nota?

Resolvam a equação:

2 = x¹²

Valor corresponde a um semitone.

PROCESSAMENTO DE AUDIO DIGITALComo calcular a frequência de uma nota?

Resolvam a equação:

x¹² = 2 x = ¹²√2 x= 1.0594631

n

PROCESSAMENTO DE AUDIO DIGITALCálculo de Frequência:

Fn = F₀ * (st) A = 440 hz. note = 440 * (1.0594631)² note = 493.88330653 ≈ 494

PROCESSAMENTO DE AUDIO DIGITAL

Formação de acordes:

Tríade Maior A tríade maior é formada pela fundamental (1° grau), terça maior (3° grau) e quinta justa (5° grau) da escala maior.

PROCESSAMENTO DE AUDIO DIGITAL

PROCESSAMENTO DE AUDIO DIGITAL

Formação de acordes:

Tríade Maior A tríade maior é formada pela fundamental (1° grau), terça maior (3° grau) e quinta justa (5° grau) da escala maior.

C = 262 hz E = 262 * (1.0594631)⁴ = 330 hz G = 262 * (1.0594631)⁷ = 392 hz

Sintetizar Audio:

PROCESSAMENTO DE AUDIO DIGITAL

Sintetizar Audio:

Fn = A Sin(2𝜫 ft)

PROCESSAMENTO DE AUDIO DIGITAL

http://developer.android.com/reference/android/media/AudioTrack.html

Audio Track API

PROCESSAMENTO DE AUDIO DIGITAL

obrigad0!heitornsouza@gmail.com

linkedin.com/in/heitornsouza

top related