Como eu posso mudar o dispositivo de entrada e saida de audio em uma aplicação c# se alguém puder me ajudar ficarei grato.

4,246 views
Skip to first unread message

Jean Katsu

unread,
Oct 1, 2013, 3:16:37 AM10/1/13
to coruja...@googlegroups.com
Tenho uma aplicação  e gostaria de poder decidir qual entrada de audio usar  mas não acho nada que possa me ajudar na net.

Renato Neri

unread,
Oct 1, 2013, 6:38:26 AM10/1/13
to coruja...@googlegroups.com
Jean, eu nunca tentei fazer isso em .net, mas...se você só quiser trocar o dispositivo de entrada de áudio, você pode clicar no 
ícone auto falante do lado do relógio com o botão direito e escolher a opção "Dispositivos de reprodução" e mudar para padrão o que for de sua escolha.

Agora, se você realmente quiser que sua aplicação faça isso, vou dar uma procurada também pra te ajudar, se conseguir algo, posto aqui!

Jean Katsu

unread,
Oct 1, 2013, 12:50:58 PM10/1/13
to coruja...@googlegroups.com
Renato realmente e necessário. eu achei "ManagementObjectSearcher mo = 
      new ManagementObjectSearcher("select * from Win32_SoundDevice");

foreach (ManagementObject soundDevice in mo.Get())
{
     String deviceId = soundDevice.GetPropertyValue("DeviceId").ToString();
     String name  = soundDevice.GetPropertyValue("Name").ToString();
" que reconhece os dispositivo mas não to conseguindo configurá-los. Obrigado por ajudar atenção!!

Fábio Ávila

unread,
Oct 7, 2013, 9:34:23 AM10/7/13
to coruja...@googlegroups.com
Amigo, tentei várias vezes procurar uma forma de fazer isso em C# recentemente, estou fazendo algumas coisas com o código da LapsAPI porem estou evoluindo de forma muito lenta por falta de tempo. Estou utilizando esse recurso, pois em meu projeto pois quero ter uma instancia do julius (LapsAPI) para cada microfone do micro, asssim posso espalhar microfones bluetooth, kinect e etc no mesmo software (vários ouvidos).

O problema é que para isso você tem acessar a biblioteca nativa do windows ou fazer alguma 'gambiarra'.
A biblioteca nativa é muito ruim mal documentada, porém achei uma solução interessante

Executar outro programa nativo que faça isso.
Existem alguns programas que podem ser executados em linha de comando para esse fim, com isso basta você executar a linha de comando via C#
Aquie tme um codigo em c++ e tem até o exe pra baixar nesse link tem o link para o programa e como utilizar: http://www.spikex.net/programmatically-changing-the-default-audio-playback-device-on-windows-vista-windows-7/

Assim fica fácil.

Achei outros mas ainda não testei


OBS: Existe algo que eu ainda não testei, com o julius rodado mudar o default device, eu não sei se ele vai mudar ou se voce tem que reiniciar a instancia do julius.




--
--
FalaBrasil Speech Group - http://www.laps.ufpa.br/falabrasil
Você recebeu esta mensagem porque está inscrito no Grupo "Coruja -
Reconhecimento de Voz em PB" nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
coruja...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
coruja-users...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com/group/coruja-users?hl=pt-BR?hl=pt-BR
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Coruja - Reconhecimento de Voz em PB" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para coruja-users...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Atenciosamente,
Fábio Rosenzweig Ávila
----------------------------------------------
fabio...@gmail.com

Michel Ferreira de Castro

unread,
Dec 18, 2013, 5:31:59 AM12/18/13
to coruja...@googlegroups.com
Estou tendo o mesmo problema, na verdade a menor da suas preocupações é a forma de stanciar varias vezes a classe do Coruja, além disso um outro problema gigante é o grande ruido do ambiente. Tendo em vista que o microfone será posicionado em vários locais é quase impossível prever o que pode acontecer. Lembrando que o computador não reconhece sons como nos os ouvimos, pra ele são apenas vibrações em base binaria. Ou seja, ruídos que tem uma frequência parecida com um dos comandos pré definidos na gramatica podem ser facilmente confundidos. Creio que isto não seja novidade pra ninguém. Lembrando que quando você utiliza aparelhos bluethoot eles se desconectam automaticamente de tempo em tempo para economizar energia, para reconectar requer uma intervenção manual do usuário. Ou seja, se for para uma automação residencial não é uma boa ideia. Recomendo muito forte um microfone WIFI devido a estabilidade da conexão.

O ideal a se fazer é ter uma placa de captura de audio muito parecida com a PRO TOOLS esta placa tem múltiplas entradas de áudio, o grande problema é seu custo beneficio. Custa bastante caro. De qualquer forma, fica ai como dica um pouquinho da minha experiencia.

Forte abraço. 

Michel Ferreira de Castro

unread,
Dec 18, 2013, 5:39:36 AM12/18/13
to coruja...@googlegroups.com
Amigo, creio que a melhor opção seja uma gravação em formato de áudio (Wav, Mp3, etc) que seja enviado a um serviço e gerenciado pelo julius. Isto pode resolver boa parte dos seus problemas. Tendo em vista que desta forma qualquer aparelho que possa se conectar a rede wifi e tenha um microfone embutido seria um ponto de reconhecimento. Além disso o usuário só ativaria este microfone quando realmente fosse utiliza-lo. Sendo assim não importa o ruido do ambiente, o microfone só sera ligado quando o usuário ativa-lo para falar.

Não sei se resolve seu problema, mas já é mais um passo que podemos dar com o projeto coruja.
Não sei se o coruja disponibiliza de um método que reconheça sons gravados. Mas como ele já reconhece em tempo de execução, receio que não seja algo tão impossível de fazer. 

Forte abraço;


Em terça-feira, 1 de outubro de 2013 04h16min37s UTC-3, Jean Katsu escreveu:

Fábio Ávila

unread,
Jan 12, 2014, 6:00:40 PM1/12/14
to coruja...@googlegroups.com
Recentemente encontrei esse software:


O que el faz é simular um microfone, e um alto-falante no Windows, o que el faz alem disso é permitir que vc 'conecte' um cabo virtual entra o alto-falante e o microfone.

Tudo o que é tocado nesse auto-alante vai diretamente para o microfone, via C# podemos facilmente tocar um arquivo WAV nesse autofalante.

Sei que o Julius possui um modo de leitura de arquivo WAV porém necessitaria de uma modificação maior na API.

Ainda estou em testes para conseguir iniciar o Julius em um microfone especifico, porém em uma deles, coloquei o microfone do VB-audio como padrão, assim o julius ficou reconhecendo ele.

Utilizando a API do navegador Chrome HTML5 para captura de áudio (celular ou desktop), alguns códigos de Javascript que consegui na web e um simples webservice C# consegui:


1) Capturar o áudio via navegador
2) Converter o áudio em formato wave via javascript
3) Enviar o arquivo via webservice para um serviço C#
4) Tocar o audio recebido no C# para o auto-falante virtual do VB audio
5) O Julius reconhece o som no microfone virtual e realiza seu trabalho

O código precisa de muita coisa para ficar funcional, porém como falei estou evoluindo em passos mínimos pois estou sem tempo

Sobre o problema do ruido, infelizmente o Julius não é preparado para isso, porém se utilizar o mecanismo acima (que um programa intermediário captura o áudio e passa para o Julius) talvez encontre algum código que possa lendo um arquivo de áudio diferencias barulho de fala ou passar algum filtro que remova ruido ou algo do tipo.

Outro problema que eu tive foi quando 2 microfones estão próximos e as duas instancias do Julius fazem o reconhecimento, acabo recebendo 2 comandos, porém isso é facilmente contornado criando um pool de reconhecimento e impedindo duplicidade em um período de tempo curto.





--
--
FalaBrasil Speech Group - http://www.laps.ufpa.br/falabrasil
Você recebeu esta mensagem porque está inscrito no Grupo "Coruja -
Reconhecimento de Voz em PB" nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
coruja...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
coruja-users...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com/group/coruja-users?hl=pt-BR?hl=pt-BR
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Coruja - Reconhecimento de Voz em PB" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para coruja-users...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

Michel Ferreira de Castro

unread,
Jan 29, 2014, 8:58:08 PM1/29/14
to coruja...@googlegroups.com
Fabio,
Gambiarra nunca é bom, dessa forma você vai ter que instanciar 2 gramaticas iguais e ter o dobro de processamento para manter tudo ativo.
Não te recomendo nem um pouco fazer dessa forma.

Jose Eduardo NovaPC

unread,
Feb 18, 2014, 12:03:01 PM2/18/14
to coruja...@googlegroups.com
Fábio, poderia me dizer como voce conseguiu fazer com que o programa conecta-se um no outro? Meu projeto utiliza o Coruja, mas uma outra parte dele necessita de algo parecido, eu resolvi fazendo um "cabo" Fisico, mas não é o recomendado e nem o melhor visualmente falando.
PS: Sei que isso tbm é uma gambiarra, mas por hora é uma gambiarra menos feia :D


Muito Obrigado desde já


Em terça-feira, 1 de outubro de 2013 04h16min37s UTC-3, Jean Katsu escreveu:

Fábio Ávila

unread,
Feb 20, 2014, 12:29:53 PM2/20/14
to coruja...@googlegroups.com
Michel Ferreira de Castro
 Sei que gambiarra não é legal, mas como o Julius não "escuta" mais de uma fonte ao mesmo tempo. A forma que arrumei foi fazer isso.
 O problema ocorre pois o Julius acessa diretamente o dispositivo de audio, o que dificulta um pouco a intervenção.

 O processamento ocorre uma vez por fonte, assim eu não tenho o dobro de processamento na execução do programa, somente na inicialização

 Mixar as entradas em uma saida unica seria outra solução, porém pode ter problema de misturar o som.



Jose Eduardo NovaPC

Com o software que falei http://vb-audio.pagesperso-orange.fr/Cable/index.htm, você simula esse cabo físico que você fez, se quiser mais detalhes pode falar novamente.



--
--
FalaBrasil Speech Group - http://www.laps.ufpa.br/falabrasil
Você recebeu esta mensagem porque está inscrito no Grupo "Coruja -
Reconhecimento de Voz em PB" nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
coruja...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
coruja-users...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com/group/coruja-users?hl=pt-BR?hl=pt-BR
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Coruja - Reconhecimento de Voz em PB" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para coruja-users...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply all
Reply to author
Forward
0 new messages