SBrT 2021 1570731183
XXXIX SIMPÓSIO BRASILEIRO DE TELECOMUNICAÇÕES E PROCESSAMENTO DE SINAIS - SBrT 2021, 26–29 DE SETEMBRO DE 2021, FORTALEZA, CE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
60
61
62
63
64
65
Experimento de Processamento de Músicas com
Python Notebook e Aplicativo IoT
Felipe Almeida e Victor Hayashi
II. E MBASAMENTO T EÓRICO
Resumo— Proporcionar um aprendizado ativo em processamento de sinais é um desafio educacional relevante. Recursos
Educacionais Abertos (REA) podem fomentar atividades práticas
que auxiliam o aprendizado da teoria. Neste artigo, um experimento de processamento de músicas em um Python Notebook
para execução local ou na nuvem da Google é apresentado para
complementar a educação teórica em processamento de sinais. O
experimento de código aberto está conectado a uma plataforma
IoT em nuvem para fomentar integrações externas em projetos
dos alunos, e as atividades são organizadas de acordo com
Objetivos de Aprendizagem conforme a Taxonomia de Bloom.
Aprendizado ativo pode ser entendido como qualquer atividade de aprendizagem realizada por alunos que não seja a
tradicional forma passiva de assistir a aulas de um professor.
As atividades relacionadas a um aprendizado ativo podem ser
realizadas individualmente ou em grupo, e podem fomentar
a aplicação de materiais do curso a novos problemas ou em
situações do “mundo real” [7].
Recursos Educacionais Abertos (REA) são materiais disponíveis em formato digital de forma livre para uso e reuso
por estudantes e educadores em aulas e pesquisa. Podem ser
conteúdos educacionais como módulos e materiais de aula,
recursos de implementação como licenças que permitem a
publicação aberta dos materiais e ferramentas [11].
A ideia principal da Taxonomia de Bloom é que educadores
desejam que os estudantes atinjam determinados Objetivos
de Aprendizado após o processo de aprendizagem. Estes
Objetivos de Aprendizagem podem ser organizados em uma
taxonomia, do mais simples até o mais complexo. Os níveis
cognitivos da taxonomia são: conhecimento, compreensão,
aplicação, análise, síntese, criação e avaliação, sendo este
último relacionado ao pensamento crítico. Cada objetivo está
associado a um verbo, como por exemplo o verbo “listar”
no nível de conhecimento e o verbo “criticar” no nível de
avaliação. É esperado que cada Objetivo de Aprendizagem
esteja também relacionado a um comportamento observável
do aluno [10].
Project Based Learning (PBL) é um método para aprendizado ativo centrado em estudantes para fomentar autonomia,
colaboração e reflexão considerando práticas do “mundo real”.
É baseado nos princípios de que o aprendizado é específico
ao contexto; de que alunos estão envolvidos de forma ativa no
processo de aprendizado; e que alunos atingem seus objetivos
por meio de interações sociais e colaboração [13].
O processamento de áudio pode ser realizado pela análise de
parâmetros chroma [17], que permitem a análise de músicas
a partir da distribuição de seus semi-tons, sendo utilizados
para sincronização e análise da estrutura destes tipos de áudio
[16]. Sua representação visual, denominada chromagrama, é
uma variação das distribuições usuais para percepção de tons,
que apresenta a distribuição da energia espectral em cada
um dos 12 semi-tons da oitava [2]. Considerando o conjunto
dos 12 chromas relacionados aos tons {C, C#, D,..., B}, um
parâmetro chroma [16] pode ser representado como um vetor
de 12 dimensões da equação (1), onde x(1) corresponde ao
chroma C, x(2) ao chroma C#, x(3) ao chroma D, e assim
sucessivamente até x(12), associado ao chroma B.
Palavras-Chave— Processamento de Sinais de Áudio, Educação, IoT, Cloud.
Abstract— Providing active learning in signal processing is
a relevant educational challenge. Open Educational Resources
(OER) might foster practical activities that assist in student
learning. In this article, a music processing experiment in a
Python Notebook with local and cloud execution alternatives
is presented to complement the theoretical education in signal
processing. The open-source experiment is also connected to a
cloud IoT platform to foster external integrations in students’
projects, and activities are organized according to Learning
Objectives according to Bloom’s Taxonomy.
Keywords— Audio Signal Processing, Education, IoT, Cloud.
I. I NTRODUÇÃO
O processo de ensino-aprendizagem em processamento de
sinais para alunos de graduação requer experimentos práticos.
Além de motivar, a conexão com a realidade por meio de
aplicações usuais presentes no cotidiano dos estudantes pode
ajudar os discentes a obter intuições importantes para o
entendimento de conceitos apresentados em aulas expositivas
[1].
Neste contexto, este artigo descreve um experimento de
processamento de músicas para facilitar a conexão com a
realidade para os estudantes.
O texto está organizado da seguinte forma: aspectos pedagógicos e teóricos são abordados na Seção II, enquanto
a Seção III apresenta os materiais e métodos empregados.
A Seção IV contém a descrição da solução proposta. Os
resultados da implementação em ambiente local e na nuvem
da Google estão apresentados na Seção V, e uma discussão em
relação aos trabalhos relacionados é apresentada na Seção VI.
A Seção VII conclui o trabalho, apresentando as contribuições
e perspectivas de trabalhos futuros.
Felipe Almeida e Victor Hayashi, Departamento de Computação e Sistemas
Digitais (PCS), Escola Politécnica da Universidade de São Paulo, São PauloSP, e-mails: {felipe.valencia.almeida, victor.hayashi}@usp.br
1
XXXIX SIMPÓSIO BRASILEIRO DE TELECOMUNICAÇÕES E PROCESSAMENTO DE SINAIS - SBrT 2021, 26–29 DE SETEMBRO DE 2021, FORTALEZA, CE
x = (x(1), x(2), ..., x(12))
Blynk [3] é uma plataforma voltada para projetos de IoT.
Seu desenvolvimento foi motivado por uma necessidade de
uma plataforma simples, capaz de facilitar a integração entre
múltiplos componentes, podendo ser sensores, microcontroladores, como o Arduino, computadores de pequeno porte,
como o caso do Raspberry Pi, dentre outros. O uso de
uma solução deste tipo reduz a complexidade de um projeto
de IoT, pois é possível padronizar a comunicação entre os
componentes e eliminar a necessidade de configuração de
múltiplos protocolos de comunicação. A interface básica do
Blynk é utilizada por meio do seu aplicativo, que pode ser
obtido na Google Play (para dispositivos Android) ou na App
Store (para dispositivos iOS).
É importante destacar a definição de pino virtual: ao contrário de um pino digital ou analógico, um pino virtual é
uma abstração do Blynk que não possui equivalente físico.
Ele corresponde a um endereço na nuvem do Blynk, onde os
dados podem ser lidos ou escritos, promovendo assim uma
maior flexibilidade na aplicação. Estes pinos podem ser lidos
ou ter seu valor alterado facilmente por meio de requisições
do tipo HTTP (HTTP Requests). Estas atuam como a forma
de integrar os notebooks com o Blynk.
Requisições HTTP utilizam-se do protocolo de mesmo
nome para realizar a comunicação entre clientes e servidores
[14], atuando como a base da camada de aplicação da Internet.
No contexto deste trabalho estas requisições são utilizadas para
comunicar os dispositivos com a nuvem do Blynk. Os métodos
utilizados podem ser do tipo GET, POST, PUT, HEAD, DELETE, PATCH e OPTIONS, sendo os dois primeiros os mais
utilizados. Requisições do tipo GET geralmente são utilizadas
para solicitar algum tipo de dados, podendo também no caso
do Blynk serem utilizadas para alterar o valor de algum pino
virtual. Desta forma, neste trabalho foi necessário apenas o
uso das requisições do tipo GET, alterando a URL conforme
o tipo de operação, podendo esta ser de leitura ou escrita.
(1)
Uma das possíveis definições de Internet das Coisas (IoT,
Internet of Things) é uma rede de objetos inteligentes que
possuem capacidade de auto-organização, compartilhamento
de informações, dados e recursos, que podem reagir e atuar no
caso de determinadas situações e mudanças em seu ambiente
[15]. Neste trabalho, uma oportunidade explorada é a integração do experimento desenvolvido com uma plataforma de IoT
em nuvem para suportar o compartilhamento das informações
adquiridas, e tornar possível o uso desta informação em um
projeto que pode ser desenvolvido pelo aluno em conjunto
com seus colegas, considerando a aplicação do método PBL
descrito anteriormente no curso.
III. M ATERIAIS E M ÉTODOS
Esta seção descreve os recursos computacionais utilizados
neste trabalho. A Figura 1 apresenta uma visão da arquitetura
destacando os recursos utilizados.
Fig. 1.
Visão da arquitetura com ênfase nos recursos utilizados
A pyAudioAnalysis é uma biblioteca Python open source
que provê uma gama de ferramentas para análise de áudio,
como classificação, extração de parâmetros e segmentação [8].
Em relação à extração de parâmetros, que é o recurso utilizado
neste trabalho, sua função feature_extraction() recebe como
entradas uma amostra de áudio, a taxa de amostragem, o
tamanho da janela deslizante e o passo da janela. Seu retorno
é um array numpy, contendo 32 estruturas correspondentes
a parâmetros distintos. É importante destacar as estruturas
relacionadas ao Chroma Vector, que serão analisadas nos casos
de teste. Informações sobre as demais estruturas podem ser
obtidas em [8].
Notebooks são ambientes virtuais utilizados para computação interativa. Sua estrutura baseia-se em células, que podem
ser preenchidas tanto com recursos textuais e visuais quanto
com blocos de código escritos com linguagens de programação, como por exemplo a linguagem Python, permitindo
o uso da biblioteca pyAudioAnalysis. Diversos produtos são
disponíveis atualmente utilizando o conceito de notebooks,
sendo os mais conhecidos do tipo open-source, como por
exemplo o Jupyter Notebook [12] ou então o Google Colab
[9]. Observa-se na literatura diversas tentativas de ensino via
uso de notebooks [18] [20], devido ao caráter prático e os
recursos diversos propiciados por esta aplicação. No caso do
Google Colab por exemplo, pode-se destacar a vantagem de
utilizar um ambiente externo, sem a necessidade de instalar
qualquer recurso do computador local do aluno.
IV. S OLUÇÃO P ROPOSTA
A união dos recursos apresentados na Seção III segundo a
visão apresentada na Figura 1 resultam em uma ferramenta
didática que pode ser utilizada para promover um experimento de processamento de músicas conforme Objetivos de
Aprendizagem propostos segundo a Taxonomia de Bloom.
A ferramenta consiste em um notebook que utiliza-se da
biblioteca pyAudioAnalysis para processar o áudio e realiza
conexão com a nuvem do Blynk por meio de requisições
HTTP. Este notebook pode ser executado tanto no Google
Colab, por meio de um ambiente virtual alocado nos servidores
da Google, quanto localmente, utilizando o Jupyter Notebook.
Seu código é aberto para que possa ser reutilizado REA.
O notebook permite uma participação ativa do aluno no
processo de aprendizagem, pois este pode alterar seu conteúdo
conforme suas necessidades e dúvidas. Por exemplo: se o
curso seguir o método de PBL, após a aula o aluno pode
utilizar a ferramenta em um projeto, e comprovar a utilidade
da ferramenta apresentada em aula.
A Figura 2 apresenta o contexto de uma aula utilizando a
ferramenta proposta. Em um primeiro momento (1) o professor
2
XXXIX SIMPÓSIO BRASILEIRO DE TELECOMUNICAÇÕES E PROCESSAMENTO DE SINAIS - SBrT 2021, 26–29 DE SETEMBRO DE 2021, FORTALEZA, CE
Fig. 2.
5) Criação de um Projeto no Blynk;
6) Configuração do Aplicativo Blynk;
7) Interação com a Plataforma IoT por meio de Requisição
HTTP.
Os seguintes Objetivos de Aprendizado (OA) foram estabelecidos para o experimento:
• OA1: Após ler as informações e assistir aos vídeos do
Passo 1, os alunos serão capazes de descrever o que são
parâmetros Chroma, e como eles podem ser usados para
diferenciar músicas.
• OA2: Após a realização das atividades dos Passos 2 e 3,
os alunos serão capazes de usar a biblioteca pyAudioAnalysis para processar áudios, demonstrando o processamento de áudios diferentes para professores e monitores,
por meio de interação com o notebook Python.
• OA3: Após a realização das atividades dos Passos 4, 5,
6 e 7 os alunos serão capazes de enviar os parâmetros
obtidos com o processamento do áudio para seu celular e
obter esta mesma informação usando requisições HTTP
em uma plataforma IoT.
Como requisitos, além dos arquivos presentes no Github
da ferramenta, são necessários um computador com acesso
à Internet e um celular iOS ou Android. Os 8 arquivos de
músicas de gêneros diferentes para uso livre foram obtidos no
portal Free Music Archive1 , conforme detalhado na Tabela
I. Estes arquivos são obtidos pelos alunos a partir de um
repositório público onde as músicas foram disponibilizadas
por meio do uso da biblioteca gdown, conforme pode ser
observado na Figura 3.
Aula utilizando a ferramenta
apresenta para os alunos durante a aula a ferramenta no Google
Colab, onde os alunos podem acompanhá-lo. Conceitos relacionados aos recursos computacionais utilizados e a teoria de
processamento de áudio devem ser explicados e eventualmente
reforçados, visando um melhor aproveitamento e autonomia
por parte dos alunos. O professor pode neste momento utilizar
uma amostra de áudio como teste, deixando para os alunos a
tarefa de executar a ferramenta com outras amostras de áudio.
Em seguida (2) os alunos executam por conta própria a
ferramenta, com outras amostras de áudio. Esta execução
pode ser tanto pelo Google Colab quanto local no Jupyter
Notebook, que deve ser instalado na máquina do aluno, o que
pode propiciar uma maior variedade de recursos. Os alunos
também podem realizar eventuais mudanças no notebook,
testando outras configurações, funcionalidades ou coletando
novos dados.
Por fim (3) o resultado do experimento não se limita apenas
ao momento da aula. Após o contato do aluno com esses
novos conceitos e tecnologias, ele também pode utilizá-los em
projetos próprios, como por exemplo em uma Iniciação Científica ou em um Trabalho de Conclusão de Curso, integrando
dispositivos IoT como o Raspberry Pi.
Fig. 3.
Obtenção de arquivos em Notebook no Google Colab
Após a obtenção dos arquivos e a instalação das bibliotecas
necessárias de forma automatizada no ambiente cloud Google
Colab, o primeiro passo consiste em assistir a um vídeo sobre
a teoria relacionada, e observar os parâmetros que podem ser
obtidos com o uso da biblioteca pyAudioAnalysis.
Os parâmetros usados na função feature_extraction() são a
taxa de amostragem de 44100 Hz, tamanho da janela deslizante de 1024 amostras e o passo da janela de 128 amostras,
além da opção ativa de que os parâmetros do tipo delta não
devem ser obtidos. A ideia é que estes parâmetros possam ser
ajustados de acordo com a necessidade do processamento dos
áudios pelos alunos ou professores. Por exemplo, foi utilizada
V. R ESULTADOS
O notebook foi organizado em 8 passos, sendo 1 etapa de
preparação, 1 etapa de leitura e 6 atividades práticas:
1) Introdução aos Parâmetros Chroma;
2) Processamento do Áudio de uma Música;
3) Visualização dos Parâmetros Obtidos;
4) Instalação e Criação de Conta no Aplicativo Blynk;
1 https://freemusicarchive.org/
3
XXXIX SIMPÓSIO BRASILEIRO DE TELECOMUNICAÇÕES E PROCESSAMENTO DE SINAIS - SBrT 2021, 26–29 DE SETEMBRO DE 2021, FORTALEZA, CE
TABELA I
M ÚSICAS PARA
Arquivo
blues.wav
classical.wav
country.wav
eletronic.wav
hiphop.wav
jazz.wav
pop.wav
rock.wav
USO LIVRE UTILIZADAS NA VALIDAÇÃO DO
Música
Ashes Of Paradise
Jerry’s Back
Verona - Intro (ID 1407)
Alternate
Dogstarmegalazer
Among The Stars
We Are One
Jazz Hole
Banda
Pierce Murphy
Crowander
Lobo Loco
Xylo Ziko
Eaters
Pierce Murphy
Scott Holmes Music
Blue Wave Theory
Tamanho (MB)
46
30
16
39
43
45
28
27
Fig. 6.
Processamento (s)
180,9 ± 1,83
114,88 ± 0,25
61,2 ± 0,45
154,71 ± 0,66
166,15 ± 0,38
177,26 ± 1,09
109,15 ± 1,01
117,82 ± 0,62
Envio de parâmetros obtidos com o áudio para o Aplicativo Blynk
Há duas funcionalidades que são possíveis somente na
execução local da ferramenta com o Jupyter Notebook, devido
a problemas de compatibilidade entre bibliotecas no ambiente
cloud Google Colab: execução da música conforme a Figura 7,
e a visualização do chromagrama conforme a Figura 8, que é
um exemplo do chromagrama para a música do gênero blues.
Visualização dos parâmetros obtidos para o Chroma C
Os passos 4 e 5 detalham todos os procedimentos necessários para a criação de conta usando o aplicativo Blynk, e
obtenção do token de autenticação para interação por meio de
requisições HTTP no passo 7.
Como resultado, após a configuração do aplicativo conforme
o passo 6, o aluno tem a interface da Figura 5, e pode
realizar um teste inicial com uma requisição manual pelo seu
navegador de Internet.
Fig. 5.
Duração (m:s)
04:35
02:56
01:32
03:54
04:13
04:29
02:44
02:43
meio da requisição HTTP, como pode ser observado na Figura
6. Estes mesmos parâmetros podem ser obtidos por meio de
requisição HTTP para a plataforma IoT Blynk.
a frequência de 44100 Hz pois é a amostragem de áudio de um
CD, e o processamento padrão de somente um canal (Mono).
O tempo médio, obtido a partir de 10 experimentos para
cada áudio, necessário para o processamento dos áudios
utilizados para validação está descrito na Tabela I. Convém
destacar que o escopo desta pesquisa é exploratória, desta
forma este tempo de processamento é um resultado preliminar.
A execução em múltiplas vezes para o cálculo de parâmetros
estatísticos como média e desvio-padrão está prevista em
trabalhos futuros. Um exemplo da visualização do vetor numpy
obtido no passo 3 é apresentado na Figura 4.
Fig. 4.
N OTEBOOK P YTHON
Fig. 7.
Player e Chromagrama no Jupyter Notebook
Teste inicial com a interface criada pelo aluno no aplicativo Blynk
Após o passo 7, o aluno envia os parâmetros obtidos com
o processamento do sinal de áudio para seu aplicativo por
Fig. 8. Chromagrama no Jupyter Notebook em execução local da ferramenta
4
XXXIX SIMPÓSIO BRASILEIRO DE TELECOMUNICAÇÕES E PROCESSAMENTO DE SINAIS - SBrT 2021, 26–29 DE SETEMBRO DE 2021, FORTALEZA, CE
VI. T RABALHOS R ELACIONADOS
VII. C ONCLUSÕES
Este trabalho apresentou uma ferramenta de código aberto
para atividades práticas em processamento de sinais de áudio
desenvolvida de acordo com os Objetivos de Aprendizagem
em um Notebook Python que pode ser executado não somente
na nuvem da Google, mas também em um ambiente local.
Como trabalhos futuros, pode-se integrar dispositivos para
processamento do áudio em um dispositivo IoT. É possível
realizar experimentos para estabelecer uma análise estatística
do tempo de resposta, além da validação da proposta com
alunos a partir da especificação de cenários, levantamento do
perfil dos participantes e atividades prévias, e outros aspectos
que podem ser obtidos por meio de questionários. A integração
de outras ferramentas e bibliotecas como o "IPython.Display"e
"LibROSA"pode expandir as funcionalidades da ferramenta.
O Curso Online Aberto e Massivo (MOOC, do inglês
Massive Open Online Course) sobre processamento de sinais
de áudio, oferecido pela Stanford na plataforma Coursera,
apresenta atividades práticas com o programa Audacity, Application Programming Interfaces (APIs), bibliotecas em C++
e Python [6]. O MOOC disponível na plataforma Udemy
também possui atividades práticas baseadas em Matlab [19].
Contudo, estes materiais estão em inglês.
JDSP é um ambiente de simulação para fomentar o aprendizado de estudantes sobre aspectos de processamento e codificação de sinais de fala, e pode ser usado por professores para
demonstrar conceitos associados a aplicações que motivem
os alunos, como os utilizados em celulares [1]. Contudo, o
JDSP trata-se de uma solução independente sem integração
com outros sistemas, enquanto a solução apresentada possui
integração com uma interface mobile e uma plataforma IoT, o
que pode reduzir a distância cognitiva entre a atividade prática
realizada e sua possível aplicação prática.
SART3D é uma solução baseada em Matlab para facilitar a
educação em processamento de sinais de áudio. Seu objetivo
é possibilitar que estudantes experimentem algoritmos e obtenham seus resultados em tempo real. Foi validado com 45
estudantes por meio de um questionário sobre diferentes aspectos como habilidades, emoção, participação e desempenho.
O uso da ferramenta aumentou o engajamento dos alunos, seu
desempenho e entendimento sobre o assunto [5].
Outra solução baseada em Matlab é o AARAE (Audio
and Acoustical Response Analysis Environment), que possui
recursos visuais de interface do usuário, e que possibilitou que
os alunos também ajudassem no desenvolvimento de alguns de
seus módulos [4]. Um ponto negativo das ferramentas baseadas
em Matlab é a dependência de um software proprietário, o que
pode restringir sua acessibilidade.
Desta forma, observa-se um problema em aberto em relação
à acessibilidade de materiais para atividades práticas para
suportar a educação em processamento de sinais de áudio.
Soluções encontradas na literatura estão em inglês (mesmo
que as aulas possam ter legendas, os códigos e softwares
associados podem não ter este suporte) e possuem dependência
de software proprietário, o que restringe o público alvo.
O material desenvolvido está descrito em português, e
foi organizado de acordo com Objetivos de Aprendizagem,
para deixar claro aos estudantes o que irão aprender com
determinadas atividades práticas, e ainda oferece integração
com plataforma IoT para facilitar a integração da atividade
prática com alguma aplicação do contexto do aluno, como um
possível projeto. Esta ferramenta de código aberto pode ser
executado não somente na nuvem da Google, mas também
em um ambiente local.
O notebook apresentado pode ser testado no ambiente
Google Colab2 , onde também é possível obter as músicas
usadas para validação. É possível obter todo o código fonte
no GitHub3 , sob a licença GNU General Public License v3.0.
R EFERÊNCIAS
[1] ATTI , V., AND S PANIAS , A. On-line simulation modules for teaching
speech and audio compression techniques. In 33rd Annual Frontiers in
Education, 2003. FIE 2003. (2003), vol. 1, IEEE, pp. T4E–17.
[2] BARTSCH , M. A., AND WAKEFIELD , G. H. Audio thumbnailing of
popular music using chroma-based representations. IEEE Transactions
on multimedia 7, 1 (2005), 96–104.
[3] B LYNK. Blynk. https://blynk.io/, 2021. Acesso: 20/05/2021.
[4] C ABRERA , D., J IMENEZ , D., AND M ARTENS , W. L. Audio and
acoustical response analysis environment (aarae): a tool to support
education and research in acoustics. In INTER-NOISE and NOISE-CON
congress and conference proceedings (2014), vol. 249, Institute of Noise
Control Engineering, pp. 1667–1676.
[5] C OBOS , M., AND ROGER , S. Sart3d: A matlab toolbox for spatial audio
and signal processing education. Computer Applications in Engineering
Education 27, 4 (2019), 971–985.
[6] C OURSERA.
Audio
signal
processing
course.
https://www.coursera.org/learn/audio-signal-processing.
Acesso:
28/05/2021.
[7] FAUST, J. L., AND PAULSON , D. R. Active learning in the college
classroom. Journal on excellence in college teaching 9, 2 (1998), 3–24.
[8] G IANNAKOPOULOS , T. pyaudioanalysis: An open-source python library
for audio signal analysis. PloS one 10, 12 (2015), e0144610.
[9] G OOGLE. Google colab. https://colab.research.google.
com/, 2021. Acesso: 20/05/2021.
[10] H UITT, W. Bloom et al.’s taxonomy of the cognitive domain. Educational psychology interactive 22 (2011).
[11] H YLÉN , J. Open educational resources: Opportunities and challenges.
Proceedings of open education 4963 (2006).
[12] J UPYTER , P. Jupyter notebook. https://jupyter.org/, 2021.
Acesso: 20/05/2021.
[13] KOKOTSAKI , D., M ENZIES , V., AND W IGGINS , A. Project-based
learning: A review of the literature. Improving schools 19, 3 (2016),
267–277.
[14] K UROSE , J. F., AND ROSS , K. W. Redes de computadores e a internet.
São Paulo: Person (2006), 28.
[15] M ADAKAM , S., L AKE , V., L AKE , V., L AKE , V., ET AL . Internet of
things (iot): A literature review. Journal of Computer and Communications 3, 05 (2015), 164.
[16] M ÜLLER , M., AND E WERT, S. Chroma toolbox: Matlab implementations for extracting variants of chroma-based audio features. In
Proceedings of the 12th International Conference on Music Information
Retrieval (ISMIR), 2011. hal-00727791, version 2-22 Oct 2012 (2011),
Citeseer.
[17] M ÜLLER , M., K URTH , F., AND C LAUSEN , M. Audio matching via
chroma-based statistical features. In ISMIR (2005), vol. 2005, p. 6.
[18] S MITH , A. A. Teaching computer science to biologists and chemists,
using jupyter notebooks: tutorial presentation. Journal of Computing
Sciences in Colleges 32, 1 (2016), 126–128.
[19] U DEMY.
Learn audio processing like engineers do !
https://www.udemy.com/course/learn-audio-processing-completeengineers-course/. Acesso: 28/05/2021.
[20] W ILSON , G., P EREZ , F., AND N ORVIG , P. Teaching computing with the
ipython notebook. In Proceedings of the 45th ACM technical symposium
on Computer science education (2014), pp. 740–740.
2 https://colab.research.google.com/drive/
1DgB5FgHltVHzzJ4lsLSwXMh_5q7hwmHR?usp=sharing
3 https://github.com/vthayashi/nbl-audioproc
5