|
|
|
|
25
|
|
25
|
|
26
|
Antes de llegar al laboratorio debes haber:
|
26
|
Antes de llegar al laboratorio debes haber:
|
27
|
|
27
|
|
28
|
-
|
|
|
29
|
1. Repasado los conceptos relacionados a arreglos y ciclos.
|
28
|
1. Repasado los conceptos relacionados a arreglos y ciclos.
|
30
|
|
29
|
|
31
|
2. Estudiado los atributos `left` y `right` de la clase `QAudioBuffer::S16S` de la librería de multimedios de `Qt`.
|
30
|
2. Estudiado los atributos `left` y `right` de la clase `QAudioBuffer::S16S` de la librería de multimedios de `Qt`.
|
|
|
|
|
67
|
|
66
|
|
68
|
Las **técnicas de procesamiento digital** se pueden utilizar para mejorar la calidad del sonido removiendo ruido y eco, para comprimir los datos, y para mejorar la transmisión. El procesamiento de sonido digital también juega un papel importante en las aplicaciones de reconocimiento de voz y en investigaciones científicas de detección de biodiversidad utilizando sensores de sonido [4]. Asimismo, el sonido digital también puede ser manipulado fácilmente para lograr efectos especiales.
|
67
|
Las **técnicas de procesamiento digital** se pueden utilizar para mejorar la calidad del sonido removiendo ruido y eco, para comprimir los datos, y para mejorar la transmisión. El procesamiento de sonido digital también juega un papel importante en las aplicaciones de reconocimiento de voz y en investigaciones científicas de detección de biodiversidad utilizando sensores de sonido [4]. Asimismo, el sonido digital también puede ser manipulado fácilmente para lograr efectos especiales.
|
69
|
|
68
|
|
70
|
-Como las grabaciones de sonido digital son esencialmente una colección de valores numéricos que representan una onda de sonido, el procesamiento de sonido digital puede ser tan simple como el aplicar operaciones aritméticas a esos valores. Por ejemplo, digamos que tienes una grabación de sonido digital. Mientras más alto el volúmen de la grabación, más altos los valores absolutos de los números que contiene. Para reducir el volúmen de toda la grabación solo tendríamos que multiplicar cada valor en la grabación por un número positivo menor que 1.
|
|
|
|
|
69
|
+Como las grabaciones de sonido digital son esencialmente una colección de valores numéricos que representan una onda de sonido, el procesamiento de sonido digital puede ser tan simple como el aplicar operaciones aritméticas a esos valores. Por ejemplo, digamos que tienes una grabación de sonido digital; mientras más alto el volúmen de la grabación, más altos los valores absolutos de los números que contiene. Para reducir el volúmen de toda la grabación solo tendríamos que multiplicar cada valor en la grabación por un número positivo menor que 1.
|
71
|
|
70
|
|
72
|
---
|
71
|
---
|
73
|
|
72
|
|
|
|
|
|
83
|
|
82
|
|
84
|
Para esta experiencia de laboratorio usarás bibliotecas multimedios de `Qt`. Para poder trabajar los ejercicios necesitarás conocer los atributos `left` y `right` de la clase `QAudioBuffer::S16S`. Para propósito de esta experiencia de laboratorio, utilizamos el nombre `AudioBuffer` al referirnos a `QAudioBuffer::S16S`.
|
83
|
Para esta experiencia de laboratorio usarás bibliotecas multimedios de `Qt`. Para poder trabajar los ejercicios necesitarás conocer los atributos `left` y `right` de la clase `QAudioBuffer::S16S`. Para propósito de esta experiencia de laboratorio, utilizamos el nombre `AudioBuffer` al referirnos a `QAudioBuffer::S16S`.
|
85
|
|
84
|
|
86
|
-Cada objeto de la clase `AudioBuffer` tendrá atributos o variables miembro `left` y `right` que contienen el valor izquierdo y derecho de la muestra de sonido estéreo. Estas variables son públicas y podrás acceder su contenido escribiendo el nombre del objeto, seguido de un punto y luego el nombre de la variable. Para representar una señal de sonido, usamos un arreglo de objetos de clase `AudioBuffer`. Cada elemento del arreglo es un objeto que contiene los valores izquierdo y derecho de la señal en un instante en el tiempo (recuerda que cada segundo contiene 44,100 muestras). Por ejemplo, si tenemos un arreglo de objetos `AudioBuffer`, llamado `frames`, entonces `frames[i].left` se refiere al valor del canal izquierdo del sonido en la muestra `i`.
|
|
|
|
|
85
|
+Cada objeto de la clase `AudioBuffer` tendrá atributos o variables miembro `left` y `right` que contienen el valor izquierdo y derecho de la muestra de sonido estéreo. Estas variables son públicas y podrás acceder su contenido escribiendo el nombre del objeto, seguido de un punto y luego el nombre de la variable. Para representar una señal de sonido, usamos un arreglo de objetos de la clase `AudioBuffer`. Cada elemento del arreglo es un objeto que contiene los valores izquierdo y derecho de la señal en un instante en el tiempo (recuerda que cada segundo contiene 44,100 muestras). Por ejemplo, si tenemos un arreglo de objetos `AudioBuffer`, llamado `frames`, entonces `frames[i].left` se refiere al valor del canal izquierdo del sonido en la muestra `i`.
|
87
|
|
86
|
|
88
|
---
|
87
|
---
|
89
|
|
88
|
|
|
|
|
|
130
|
|
129
|
|
131
|
## Sesión de laboratorio:
|
130
|
## Sesión de laboratorio:
|
132
|
|
131
|
|
|
|
132
|
+El proyecto `SoundProcessing` contiene el esqueleto de una aplicación para hacer procesamiento de sonido estéreo. La aplicación que completarás permitirá al usuario aplicar cuatro algoritmos diferentes para procesamiento de sonidos. La sub-carpeta llamada `WaveSamples` contiene archivos de onda para que pruebes tus implementaciones.
|
133
|
|
133
|
|
134
|
-El proyecto `SoundProcessing` contiene el esqueleto de una aplicación para hacer procesamiento de sonido estéreo. La aplicación que completarás permitirá al usuario aplicar cuatro algoritmos diferentes para procesamiento de sonidos. La sub-carpeta llamada `WaveSamples` contiene archivos de onda para que pruebes tus implementaciones.
|
|
|
135
|
|
134
|
|
136
|
### Ejercicio 1 - Remover las voces de una grabación
|
135
|
### Ejercicio 1 - Remover las voces de una grabación
|
137
|
|
136
|
|
|
|
|
|
172
|
* `rain.fi.wav`
|
171
|
* `rain.fi.wav`
|
173
|
* `water.fi.wav`
|
172
|
* `water.fi.wav`
|
174
|
|
173
|
|
175
|
- Las grabaciones fueron creadas utilizando el filtro de intensidad con `fade_length 88200`. Debes escuchar como el sonido del agua y la lluvia se intensifican linealmente durante los primeros dos segundos y luego se quedan en el mismo volúmen. Nota que, como estamos usando sonidos grabados a `44100` muestras por segundo, `88200` corresponde a dos segundos de grabación.
|
|
|
|
|
174
|
+Las grabaciones fueron creadas utilizando el filtro de intensidad con `fade_length 88200`. Debes escuchar como el sonido del agua y la lluvia se intensifican linealmente durante los primeros dos segundos y luego se quedan en el mismo volúmen. Nota que, como estamos usando sonidos grabados a `44100` muestras por segundo, `88200` corresponde a dos segundos de grabación.
|
176
|
|
175
|
|
177
|
**Algoritmo:**
|
176
|
**Algoritmo:**
|
178
|
|
177
|
|
|
|
|
|
192
|
Nota que tenemos 4 muestras y el factor por el que se multiplica la muestra en cada canal comienza en `0` e incrementa `0.25` cada vez hasta llegar a `1`.
|
191
|
Nota que tenemos 4 muestras y el factor por el que se multiplica la muestra en cada canal comienza en `0` e incrementa `0.25` cada vez hasta llegar a `1`.
|
193
|
|
192
|
|
194
|
|
193
|
|
195
|
-
|
|
|
196
|
### Ejercicio 3 - Desvanecer
|
194
|
### Ejercicio 3 - Desvanecer
|
197
|
|
195
|
|
198
|
Otro efecto de sonido común es la disminución gradual del volumen de una grabación. Esto se consigue disminuyendo constantemente el valor de muestras consecutivas en el arreglo de muestras de sonido.
|
196
|
Otro efecto de sonido común es la disminución gradual del volumen de una grabación. Esto se consigue disminuyendo constantemente el valor de muestras consecutivas en el arreglo de muestras de sonido.
|
|
|
|
|
215
|
Los factores para desvanecer son los mismos que para intensificar, pero se aplican en el orden opuesto. Por ejemplo, si `fade_length` fuera `4`, las muestras de los canales en la posición cuatro antes de la última se multiplican por `0.75`, las muestras de los canales en la posición tres antes de la última se multiplican por `0.5`, las muestras de los canales en la penúltima posición se multiplican por `0.25`, y las muestras en los canales en la última posición se multiplican por `0.0`.
|
213
|
Los factores para desvanecer son los mismos que para intensificar, pero se aplican en el orden opuesto. Por ejemplo, si `fade_length` fuera `4`, las muestras de los canales en la posición cuatro antes de la última se multiplican por `0.75`, las muestras de los canales en la posición tres antes de la última se multiplican por `0.5`, las muestras de los canales en la penúltima posición se multiplican por `0.25`, y las muestras en los canales en la última posición se multiplican por `0.0`.
|
216
|
|
214
|
|
217
|
|
215
|
|
218
|
-
|
|
|
219
|
### Ejercicio 4 - Recorrido de izquierda a derecha
|
216
|
### Ejercicio 4 - Recorrido de izquierda a derecha
|
220
|
|
217
|
|
221
|
El efecto de sonido que queremos lograr en este ejercicio es comenzar a escuchar un sonido por el canal izquierdo, que vaya desvaneciéndose en ese canal, vaya intensificándose en el canal derecho, y termine completamente en el canal derecho.
|
218
|
El efecto de sonido que queremos lograr en este ejercicio es comenzar a escuchar un sonido por el canal izquierdo, que vaya desvaneciéndose en ese canal, vaya intensificándose en el canal derecho, y termine completamente en el canal derecho.
|
|
|
|
|
246
|
|
243
|
|
247
|
---
|
244
|
---
|
248
|
|
245
|
|
|
|
246
|
+
|
249
|
## Entrega
|
247
|
## Entrega
|
250
|
|
248
|
|
251
|
Utiliza "Entrega" en Moodle para entregar el archivo `audiomanip.cpp`. Recuerda utilizar buenas prácticas de programación, incluye el nombre de los programadores, y documenta tu programa.
|
249
|
Utiliza "Entrega" en Moodle para entregar el archivo `audiomanip.cpp`. Recuerda utilizar buenas prácticas de programación, incluye el nombre de los programadores, y documenta tu programa.
|
|
|
|
|
272
|
[6] http://www.hearingreview.com/2013/03/designing-hearing-aid-technology-to-support-benefits-in-demanding-situations-part-1/
|
270
|
[6] http://www.hearingreview.com/2013/03/designing-hearing-aid-technology-to-support-benefits-in-demanding-situations-part-1/
|
273
|
|
271
|
|
274
|
[7] http://diveintodotnet.com/2014/12/02/programming-basics-what-are-strings/
|
272
|
[7] http://diveintodotnet.com/2014/12/02/programming-basics-what-are-strings/
|
275
|
-
|
|
|
276
|
-
|
|
|
277
|
----
|
|
|
278
|
-
|
|
|
279
|
----
|
|
|
280
|
-
|
|
|
281
|
----
|
|
|