Informatica applicata al suono

A.A. 2021/2022
12
Crediti massimi
96
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
L'insegnamento è articolato in due unità didattiche. La prima unità didattica (6 CFU) si propone di fornire agli studenti le nozioni di base sull'elaborazione digitale del suono. La seconda unità didattica (6 CFU) si propone di introdurre i principali concetti della programmazione orientata agli oggetti, applicando tali concetti alla sintesi ed elaborazione audio in tempo reale.
Risultati apprendimento attesi
Al termine della prima unità didattica lo studente deve essere in grado di padroneggiare le rappresentazioni e le trasformazioni di segnali audio nei dominii del tempo e della frequenza anche attraverso linguaggi di programmazione dedicati. Al termine della seconda unità didattica lo studente deve essere in grado di padroneggiare i principali concetti della programmazione object-oriented e di usarli autonomamente nello sviluppo di progetti software di elaborazione audio real-time.
Corso singolo

Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.

Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
annuale
Metodi didattici
Le lezioni si terranno sulla piattaforma Zoom, potranno essere seguite in sincrono sulla base dell'orario ufficiale, e in asincrono perché saranno registrate e lasciate a disposizione degli studenti sul sito del corso.

Programma e materiale di riferimento
Il programma e il materiale di riferimento non subiranno variazioni.

Modalità di verifica dell'apprendimento e criteri di valutazione
Le prove orali si svolgeranno utilizzando la piattaforma Zoom, senza altre variazioni.
Le prove scritte e le prove al calcolatore si svolgeranno utilizzando le piattaforme Zoom e Labonline, e convocando gli studenti in turni successivi composti da piccoli gruppi. La struttura delle prove non subirà variazioni.

Programma
Per il primo modulo il programma verte sui seguenti argomenti
- Introduzione all'elaborazione del segnale audio in MATLAB
- Analisi di contenuti audio (segnali, campionamento, quantizzazione, convoluzione, trasformate di Fourier, correlazione)
- Feature audio (statistiche, spettrali, post-processing, dimensionalità)
- Elaborazione audio a tempo breve (trasformate del segnale e elementi di filtraggio)
- Classificatori audio (parlato, emozioni, suoni urbani, ecc.)

Per il secondo modulo il programma verte sui seguenti argomenti
- Introduzione a Python:
Tipi, operatori, variabili, decisioni, cicli, funzioni
- Iterazioni in Python:
contatori, tipi iterabili, iteratori, comprehension
- Introduzione alla programmazione orientata agli oggetti:
classi, incapsulamento, ereditarietà, polimorfismo
- Programmazione a oggetti in Python:
costruttori, metodi, attributi, metodi di classe e statici
- Ereditarietà in Python:
tipi di ereditarietà, name trees
- Polimorfismo in Python:
"Duck typing" e tipi di polimorfismo, confronto tra Python e Java
- Sintesi ed elaborazione audio in tempo reale in Python:
introduzione a pyo, gerarchia di classi, programmazione di effetti audio
- Programmazione audio ad oggetti:
estensione di classi in pyo, costruttori, sovrascrittura di metodi
Prerequisiti
Il superamento dell'esame di Programmazione è propedeutico a questo insegnamento. E` inoltre fortemente consigliato il superamento dell'esame di Acustica.
Metodi didattici
L'intero insegnamento viene svolto mediante lezioni frontali.
Materiale di riferimento
Per il primo modulo
Sito web:
- https://sntalampirasias1.ariel.ctu.unimi.it/
Libri di riferimento:
- An Introduction to Audio Content Analysis: Applications in Signal Processing and Music Informatics, https://www.audiocontentanalysis.org/ https://dl.acm.org/doi/10.5555/2392638
- Audio and Speech Processing with MATLAB, https://www.routledge.com/Audio-and-Speech-Processing-with-MATLAB/Hill/p/book/9780367656317
- Introduction to Audio Analysis: A MATLAB Approach, https://www.elsevier.com/books/introduction-to-audio-analysis/giannakopoulos/978-0-08-099388-1
Altri materiali:
- Matlab reference help

Per il secondo modulo
Sito web:
http://favanziniias2.ariel.ctu.unimi.it
Libri di riferimento [Per la parte relativa al linguaggio Python]:
- Mark Lutz, "Learning Python", fifth edition. O'Reilly (2013).
- Allen B. Downey, "Think Python", second edition. Green Tea Press (2016).
https://greenteapress.com/wp/think-python-2e/
Libri di riferimento [Per la parte relativa alla programmazione orientata agli oggetti]:
- Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser, "Data Structures and Algorithms in Python". Wiley (2013)
- Michael H. Goldwasser, David Letscher, "Object-Oriented Programming in Python", Prentice Hall (2008). https://cs.slu.edu/~goldwasser/oopp/
Altri materiali [Per la parte relativa alla programmazione audio]:
- Documentazione ufficiale di pyo, http://ajaxsoundstudio.com/pyodoc/

Ulteriore materiale integrativo preparato dai docenti viene reso disponibile sui siti web dell'insegnamento.
Modalità di verifica dell’apprendimento e criteri di valutazione
Per il primo modulo l'esame consiste in una prova scritta e nello sviluppo di un progetto da consegnare al docente, senza prova orale.
La valutazione è espressa in trentesimi e tiene conto dei seguenti parametri: grado di conoscenza degli argomenti, capacità di applicare le conoscenze alla risoluzione di problemi concreti, capacità di ragionamento logico e critico.

Per il secondo modulo l'esame consiste di una prova al calcolatore e di una prova orale. La prova al calcolatore comprende domande a risposta chiusa/aperta ed esercizi di programmazione riguardanti lo sviluppo di semplici gerarchie di classi. La prova orale può essere sostenuta solo dopo il superamento della prova al calcolatore, e consiste nella discussione di un progetto di programmazione audio in tempo reale.
La valutazione è espressa in trentesimi e tiene conto dei seguenti parametri: grado di conoscenza degli argomenti, capacità di applicare le conoscenze alla risoluzione di esercizi, capacità di ragionamento logico e critico.

La valutazione finale è espressa in trentesimi ed è calcolata come media aritmetica tra le valutazioni ottenute nei due moduli
INF/01 - INFORMATICA - CFU: 12
Lezioni: 96 ore
Docente/i
Ricevimento:
Su appuntamento via e-mail
Via Celoria 18, ufficio 4004
Ricevimento:
appuntamento
via Celoria 18