Speech Chord - A voice search app for music chords.
-
Upload
heitor-nascimento -
Category
Mobile
-
view
318 -
download
2
Transcript of Speech Chord - A voice search app for music chords.
Speech Chord: Dicionário de AcordesHEITOR NASCIMENTO - [email protected]
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
linkedin.com/in/heitornsouza