Pergunta

Eu tenho G729 codificado arquivos de áudio. Eu preciso convertê-los programaticamente para WAV PCM (16bit 8 kHz mono) no fluxo de uma ferramenta que está fazendo outra coisa também. Eu tenho um executável que vai fazer isso por mim. Mas desova esse processo externo cada vez que eu converso é muito pesado sobre os recursos. Especialmente se eu precisar de muitos deles sendo feito em paralelo. Procurando uma biblioteca .NET ou o código que vai me deixar chamar isso de dentro do meu processo.

Foi útil?

Solução

Siga este link: O VoiceAge Abrir G.729 Implementação . Eles também fornecem decodificador g729 e codificador escrito em C.

Outras dicas

De acordo com a Wikipedia, G.729 inclui diversas patentes e é licenciado por Sipra , então você provavelmente ganhou' t tem muita sorte em encontrar um lobrary apropriado. A menos que você está decodificação de um grande número de arquivos muito pequenos, o custo de desova um novo processo não deve ser tão grande em comparação com o custo de fazer a decodificação, então eu diria que usar o executável que você tem.

Quanto aos recursos vão, sim, gerando processos requer muito mais recursos em comparação ao uso de threads. Isso deve realmente não importa, porém, desde que você só gerar o maior número de processos que você tem núcleos em sua máquina. Desova mais processos apenas desperdiça recursos e não ganhar-lhe qualquer paralelismo extra.

Wikipedia diz: "G.729 inclui patentes de várias empresas e é licenciado pela Sipro ( http: // www. sipro.com/ ). Em vários países, o uso de G.729 pode exigir uma taxa de licença e / ou taxa de royalties. "

Mas eu acho que você já entendeu que em sua aplicação.

Se você absolutamente deve estar em processo, uma solução (não dizendo que é o melhor) poderá ser a utilização libavcodec, que está sob LGPL.

A implementação de referência free-to-use em: http://www.readytechnology.co.uk/open/ipp-codecs-g729-g723.1/

Observe as questões de patentes levantadas por outros, o fato de que a implementação de referência só é executado em processadores Intel e que você precisa pagar Intel uma taxa, a fim de distribuir o código usando a sua biblioteca IPP como parte de um produto comercial.

Se você tem um codec ACM em seu sistema para G729, em seguida, você pode usar NAudio para convertê-lo para PCM. Tenha ir usando o aplicativo NAudioDemo incluído com NAudio que vai mostrar o que codecs ACM estão disponíveis em seu sistema, e decodificar um arquivo de usá-los.

O que me pede em primeiro lugar quando se trata de conversor g729 é ITU G729-A standards.One maneira bastante complicado é converter g729 para pcm primeiro deles somam um cabeçalho de wav na frente de seu files.That wav constrói um .wav de G729a oficial .g729.Since ITU (e oficialmente não suportam multi linhas ...) lib está muito envolvida nessa idéia, eu acho que você tem que considerar a simultaneidade e como programa corretamente com um monte de variáveis ??estáticas dentro G729a lib.I utilizadas para envolver em um pequeno projeto como descibes OP e eu, basicamente, dividir arquivos enormes G729 em pedaços G729 e decodificar-los individualmente de uma maneira de razoável programação de simultaneidade ...

Se você só quer ver o codec necessário para o arquivo, em seguida, ir para a GSopt e baixar o versão mais recente do que (você pode clique aqui para abrir diretamente a página de download).

Após o download, pasta aberto arquivo de extração e executar o EXE, Agora selecione o arquivo a partir do botão de navegação e depois de arquivo é carregado toda a sua informação será mostrada. (Se o arquivo não é mostrado na browse dialogue box basta selecionar All Files(*.*) de browse file dialogue)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top