Tengo archivos de audio codificados G729. Necesito convertirlos programáticamente a WAV PCM (16bit 8kHz mono) en el flujo de una herramienta que también está haciendo otra cosa. Tengo un ejecutable que hará eso por mí. Pero engendrar ese proceso externo cada vez que convierto es demasiado pesado en recursos. Especialmente si necesito que muchos de ellos se hagan en paralelo. Buscando una biblioteca .NET o un código que me permita llamar esto dentro de mi proceso.Convierta programáticamente audio G729 a WAV PCM
Respuesta
Siga este enlace: The VoiceAge Open G.729 Implementation. También proporcionan decodificador G729 y el codificador escrita en C.
Según Wikipedia, G.729 incluye varias patentes y está licenciado por Sipra, por lo que probablemente no tenga mucha suerte en encontrar una biblioteca adecuada. A menos que esté decodificando una gran cantidad de archivos muy pequeños, el costo de generar un nuevo proceso no debería ser tan grande en comparación con el costo de hacer la decodificación, así que yo diría que use el ejecutable que tiene.
En lo que respecta a los recursos, sí, los procesos de desove requieren muchos más recursos en comparación con el uso de subprocesos. En realidad, esto no debería importar, siempre y cuando solo generes tantos procesos como núcleos en tu máquina. Generar más procesos solo desperdicia recursos y no te proporciona ningún paralelismo adicional.
Wikipedia dice: "G.729 incluye patentes de varias compañías y está licenciado por Sipro (http://www.sipro.com/). En varios países, el uso de G.729 puede requerir una tarifa de licencia y/o regalías".
Pero supongo que ya lo ha considerado en su aplicación.
Si absolutamente debe estar en proceso, una solución (sin decir que es la mejor) podría ser utilizar LibAVCodec, que está bajo LGPL.
una implementación de referencia libre de usar en: http://www.readytechnology.co.uk/open/ipp-codecs-g729-g723.1/
Tenga en cuenta los problemas de patentes planteadas por los demás, el hecho de que la implementación de referencia sólo se ejecuta en los procesadores de Intel y que debe pagar una tarifa a Intel para distribuir el código utilizando su biblioteca IPP como parte de un producto comercial.
Si tiene un códec ACM en su sistema para G729, puede usar NAudio para convertirlo a PCM. Pruébalo usando la aplicación NAudioDemo incluida con NAudio que te mostrará qué códecs ACM están disponibles en tu sistema y decodificará un archivo usándolos.
Lo que me impulsa primero en lo que respecta al convertidor g729 es ITU G729-A standards.One manera engorrosa es convertir g729 a pcm primero ellos suman un encabezado wav en frente de sus archivos wav. Eso construye un .wav desde .g729. Puesto que el oficial ITU g729a (y oficialmente no admite multi threads ...) lib está muy involucrado en esta idea, supongo que debe considerar la concurrencia y cómo programar correctamente con un conjunto de variables estáticas dentro de g729a lib. Solía involucrarme en un pequeño proyecto como OP describe y básicamente dividí archivos g729 grandes en trozos g729 y los decodifiqué individualmente de una manera de programación de simultaneidad razonable ...
Si solo quiere ver el códec necesario para el archivo luego vaya a GSopt y descargue la última versión de i t (puede click here para abrir directamente la página de descarga).
Después de la descarga, extraiga la carpeta Abrir archivo y ejecute EXE
, ahora seleccione el archivo desde el botón Examinar y después de cargar el archivo, se mostrará toda su información.(Si el archivo no se muestra en el browse dialogue box
simplemente seleccione All Files(*.*)
desde browse file dialogue
)
- 1. ¿Puede ffmpeg convertir audio de PCM sin formato a WAV?
- 2. Convierta WAV a WMA usando .NET
- 3. PCM Raw Bytes [] Para audio en Android
- 4. Conversión de datos de audio RAW a WAV con scripting
- 5. Android PCM a Ulaw codificación de archivo wav
- 6. Convierta programáticamente un video a FLV
- 7. ¿Cómo editar datos de audio PCM sin procesar sin una biblioteca de audio?
- 8. Codificar wav a AAC en Android
- 9. Convertir flujo de audio a matriz de bytes WAV en Java sin archivo temporal
- 10. Android Streaming Wav Audio Error: MediaPlayer Prepare failed: estado = 0x1
- 11. Creando un archivo WAV a partir de datos PCM sin formato usando el SDK de Android
- 12. reproducir datos pcm por web API de audio
- 13. Convertir archivo .wav a .mp3
- 14. Archivo PCM Wave - estéreo a mono
- 15. Cómo codificar un WAV a un mp3 en un dispositivo Android
- 16. Uso de Audio Queue Services para reproducir datos PCM a través de una conexión de socket
- 17. Java - archivo de audio wav de baja resolución
- 18. Guardando el byte de audio [] en un archivo wav
- 19. procesando un archivo wav de audio con C
- 20. Grabar audio y Subir como WAV o MP3 al servidor
- 21. Archivo de audio más pequeño: MP3, Ogg o Wav?
- 22. Duración de un archivo de audio MP3/wav
- 23. Cómo convertir el archivo WAV a M4A?
- 24. Convertir matriz de bytes de formato de audio wav al punto flotante
- 25. conversión wav-a-midi
- 26. Python: midi a la transmisión de audio
- 27. ffmpeg wma to wav
- 28. ¿Cómo se reproduce o graba audio (a .WAV) en Linux en C++?
- 29. Android PCM Bytes
- 30. Convirtiendo wav a mp3 - ASP.NET
¿Alguien sabe dónde puede encontrar otra copia de esto? Estuve mirando el sitio durante un par de meses y su enlace al código no funciona. http://www.voiceage.com/media/G729.zip – thaspius
Ya no admiten su 'implementación abierta' y me han informado que la información todavía está allí en su sitio web, pero la eliminarán pronto (no lo hago). saber qué tan pronto). – nightwatch