Question

J'ai des fichiers audio encodés G729. J'ai besoin de les convertir par programme au format WAV PCM (16bit 8kHz mono) dans le flux d'un outil qui fait autre chose aussi. J'ai un exécutable qui le fera pour moi. Mais engendrer ce processus externe chaque fois que je convertis est trop lourd en ressources. Surtout si j'ai besoin que beaucoup d'entre eux soient réalisés en parallèle. Vous recherchez une bibliothèque .NET ou un code qui me permettra de l'appeler dans mon processus.

Était-ce utile?

La solution

Suivez ce lien: La mise en œuvre de VoiceAge Open G.729 . Ils fournissent également un décodeur et un codeur g729 écrit en C.

Autres conseils

Selon Wikipedia, G.729 comprend plusieurs brevets et est concédé sous licence par Sipra . Vous avez donc probablement gagné ' t avoir beaucoup de chance pour trouver une bibliothèque appropriée. Sauf si vous décodez un grand nombre de très petits fichiers, le coût de création d'un nouveau processus ne devrait pas être si élevé comparé au coût de décodage. Je vous conseille donc d'utiliser le fichier exécutable que vous avez.

En ce qui concerne les ressources, les processus de génération en génération nécessitent effectivement beaucoup plus de ressources que l'utilisation de threads. Cela ne devrait cependant pas vraiment avoir d’importance, tant que vous ne créez que le nombre de processus requis, car vous avez des cœurs dans votre machine. Générer plus de processus gaspille tout simplement des ressources et ne vous procure aucun parallélisme supplémentaire.

Wikipedia dit: "G.729 inclut les brevets de plusieurs sociétés et est licencié par Sipro ( http: // www .sipro.com / ). Dans plusieurs pays, l’utilisation de la norme G.729 peut nécessiter des droits de licence et / ou de redevance. "

Mais je suppose que vous en avez déjà tenu compte dans votre candidature.

Si vous devez absolument être en cours de traitement, une solution (ne pas dire que c'est la meilleure) pourrait être d'utiliser LibAVCodec, qui est sous LGPL.

Une implémentation de référence gratuite à l’utilisation de: http://www.readytechnology.co.uk/open/ipp-codecs-g729-g723.1/

Notez les problèmes de brevets soulevés par d'autres utilisateurs, le fait que l'implémentation de référence ne fonctionne que sur les processeurs Intel et que vous devez payer une redevance à Intel pour distribuer du code à l'aide de sa bibliothèque IPP dans le cadre d'un produit commercial.

Si vous avez un codec ACM sur votre système pour G729, vous pouvez utiliser NAudio pour le convertir. à PCM. Essayez l’application NAudioDemo fournie avec NAudio qui vous indiquera quels codecs ACM sont disponibles sur votre système et décodez un fichier à l’aide de ces derniers.

Ce qui m’invite le plus en premier en ce qui concerne le convertisseur g729, ce sont les normes ITU G729-A. Un moyen assez fastidieux est de convertir g729 en pcm. Ils doivent d’abord ajouter un en-tête wav devant vos fichiers wav. .g729.Depuis le g729a officiel de l'UIT (et ne prend officiellement pas en charge les multi-threads ...), lib est très impliqué dans cette idée, je suppose que vous devez tenir compte de la simultanéité et de la façon de programmer correctement avec un tas de variables statiques dans g729a lib.I utilisé pour impliquer dans un petit projet comme OP descibes et moi, nous avons essentiellement divisé d’énormes fichiers g729 en morceaux g729 et les décodé individuellement, de manière à permettre une programmation raisonnable en simultanéité ...

Si vous souhaitez uniquement voir le codec requis pour le fichier, accédez à GSopt et téléchargez le fichier. dernière version (vous pouvez cliquer ici pour ouvrir directement la page de téléchargement).

Après le téléchargement, extrayez le dossier et ouvrez le fichier, puis exécutez EXE . Sélectionnez maintenant le fichier à partir du bouton de navigation. Une fois le fichier chargé, toutes ses informations s'afficheront. (Si le fichier ne figure pas dans la boîte de dialogue de navigation , sélectionnez Tous les fichiers (*. *) dans dialogue de consultation de fichier )

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top