sound play java audio media

java - play - mediastore audio



¿Disminuye la velocidad de reproducción de un archivo de audio sin cambiar su tono? (5)

Este sitio explica cómo se hace en el mundo físico: http://www.wendycarlos.com/other/Eltro-1967/index.html

No sé cómo lo emularías en el software ... Seguiré buscando

Estoy trabajando en una aplicación para estudiantes de música de la universidad. Una característica que estoy considerando es ralentizar la reproducción de música sin cambiar su tono. Lo he visto en un software comercial, pero no puedo encontrar bibliotecas ni aplicaciones de código abierto que hagan algo como esto.

  1. ¿Hay bibliotecas por ahí?
  2. ¿Cómo podría hacerse esto desde cero desde varios formatos de archivo?

Nota: Estoy trabajando en Java pero no me opongo a los idiomas cambiantes.


Utilizo soundstretch para acelerar los podcasts, que funciona bastante bien, aunque no lo he probado en música.


audacity lo hace de la caja y es gratis. También hay varios complementos para reproductores de mp3 que son gratuitos. Aparentemente es bastante fácil de hacer con un mp3 ya que ya está codificado en el dominio de la frecuencia.


Una forma de hacerlo sería duplicar la velocidad de muestreo sin cambiar la frecuencia de muestreo de su fuente. (Ejemplo de baja calidad, pero fácil de implementar. Nota: también puede disminuir la velocidad de muestreo).

Consulte cualquier matemática relacionada con los codificadores de voz de fase.

Otro método común es crear una matriz de contenedores fft que almacenan datos para intervalos programados de su sonido. Luego puede elegir qué tan rápido iterar a través de los contenedores, y puede volver a sintetizar los datos de audio durante el tiempo que elija, lo que le permite estirar un segmento corto de su sonido durante el tiempo que desee.


Timestretching es bastante difícil. Cuanto más ralentice o acelere el sonido, más artefactos obtendrá. Si quieres saber cómo suenan, escucha "The Rockafeller Skank" de Fat Boy Slim. Hay muchas maneras de hacerlo que tienen sus propias fortalezas y debilidades. Las matemáticas pueden ser realmente complejas. Es por eso que hay tantos algoritmos propietarios.

Esta página explica las cosas un poco más claras que yo y enlaces a la biblioteca de Dirac. http://www.dspdimension.com/admin/time-pitch-overview/

Encontré este enlace para el código Java para hacer pitch shifting / timestretching http://www.adetorres.com/keychanger/KeyChangerReadme.html