Quiero escuchar ciertos podcasts en mi teléfono, pero tengo dos problemas comunes:
- El audio está en algún formato extraño (algunos no se reproducen en mi teléfono).
- El audio es lento.
Quiero usar algo como sox
o avconv
para convertir masivamente los archivos. Ya que esto es solo la voz y el teléfono celular, los archivos pequeños de baja calidad serían lo mejor para mí. Tuve un buen éxito usando avconv
:
avconv -i weird.wma normal.ogg
Desafortunadamente, este comando crea un enorme archivo ogg y no puedo reproducirlo más rápido. Lo ideal es que este archivo en particular se reproduzca a un 170% de la velocidad original.
wma
archivos pero puede reproducirogg
?Respuestas:
Convertir con FFmpeg
FFmpeg tiene un filtro de audio incorporado para cambiar el tempo sin cambiar el tono. Necesitamos codificar el archivo a algún formato que su teléfono reproduzca. Esto depende del teléfono por supuesto. Muchos teléfonos inteligentes modernos como el audio AAC:
Aquí, puedes cambiar la calidad con la
-q:a
Opción, donde el valor es en porcentaje y mayor significa mejor.O bien, audio MP3 con una calidad (promedio) de 4, donde menos significa mejor (0 que resulta en aproximadamente 245 kBit / s):
Si su teléfono no admite ninguno de estos, tendremos que seguir investigando. Ah, y yo uso
ffmpeg
sinónimo deavconv
aquí. No son exactamente iguales, pero para los casos anteriores puede usar cualquiera de las dos herramientas. Si su versión de FFmpeg o avconv no incluye FAAC o LAME, vaya a obtener una compilación estática de Linux desde la página de descarga de FFmpeg .Si no te gustan los filtros FFmpeg, aquí hay otro enfoque:
Extraer audio crudo
En primer lugar, debe extraer la secuencia de audio sin formato en un formato sin comprimir, por ejemplo. Audio estéreo PCM de 16 bits en un contenedor WAV.
Ahora podemos usar el archivo.
temp.wav
Para acortar el audio. Tenemos algunas opciones para eso:Opción 1: SoX
SoX ofrece algunos filtros diferentes que le permiten cambiar la velocidad, el tono o el tempo. Simplemente cambiando la velocidad aumentará el tono para compensar la longitud, por lo que esto puede sonar poco natural.
los
tempo
el filtro utiliza un algoritmo avanzado para acortar los archivos, pero mantiene el tono, dividiéndolo en ventanas de tiempo más pequeñas y luego "fusionándolas", acelerando así el tempo. Por ejemplo:Esto puede sonar un poco raro. Si lo hace, recurra a la opción 2.
Opción 2: Estiramiento de sonido extremo de Paul
Este programa promete ofrecer una mejor calidad que SoX, y hay una versión de línea de comandos escrita en Python disponible en GitHub . Un comando podría tener este aspecto: tenga en cuenta que, por defecto, estira el archivo, para acortarlo, calculamos el inverso de 1.7, que es 0.59:
Convertir audio en bruto en un archivo comprimido
Ahora tenemos un archivo WAV acortado, pero aún no está comprimido, por lo que necesitamos comprimirlo nuevamente. Consulte las opciones en la parte superior de esta publicación para varios formatos.
Los métodos no ffmpeg descritos anteriormente perderán sus metadatos; puede agregarlo de nuevo al convertir output.wav a un formato comprimido así:
fuente
-tempo
¿cambiar?