Quiero aumentar un volumen en la memoria intermedia con datos de voz. El punto es que estoy usando DirectSound y tengo un buffer primario y uno secundario: todas las secuencias se mezclan a mano. En un chat de voz, todos los participantes pueden tener niveles de volumen independientes. Multiplico cada flujo de datos por un valor (ganancia) y lo sumo en un buffer. Todo funciona bien, pero cuando intento multiplicar los datos por un valor superior a 1.0f, escucho un recorte o qué.Modificar la ganancia de volumen en la memoria tampón de muestra de audio
He intentado usar el compresor de efectos Audacity, pero esto no ayuda a reducir el ruido extraño.
Probablemente debería modificar la ganancia de alguna otra manera? ¿O simplemente usa otro algoritmo de postprocesamiento?
ACTUALIZACIÓN: ¡Wow, acabo de enterarme de algo interesante! He descargado el audio antes de aumentar el volumen y justo después de eso.
Aquí es el pic
Lo siento por la calidad - Creo que así es como se supone que el sonido a aparecer (He dibujado la línea roja a mí mismo). Realmente parece que los valores exceden el tipo de datos de muestra. Pero no puedo entender ¿POR QUÉ? Mi samplebuffer es BYTE, pero solo accedo a él mediante un puntero corto. Está firmado pero el recorte ocurre incluso cuando * ptr es aproximadamente de 15 a 20 mil.
¿Qué es "algo de recorte o qué"? ¿Sus valores realmente exceden los límites para el tipo de datos de muestra? y ¿qué quiere decir con "intenté usar el compresor de efecto Audacity"? ¿Está en la salida recortada o en la salida antes del recorte? – lijie
La muestra es de audio de 200 ms con una frecuencia de muestreo de 22050 hz. 2 bytes - corto. Si multiplico esta muestra por 1.f - el volumen original - todo está bien. Si multiplico por un valor menor que 1.f, el volumen se vuelve más bajo. Pero si lo multiplico, p. Ej. 1.3f - el volumen se vuelve más alto pero con un ruido de scratch feo. Usé un compresor de efecto audacity en el buffer mixto (con recorte). – Dalamber
Aquí está mi respuesta con un código: está fuera de sí, así que no esperes que funcione como está. –