private void btnLlamar_Click(object sender, EventArgs e) { //voice.Speak("Hello, Nurse!", SpeechVoiceSpeakFlags.SVSFDefault); //SpMemoryStream stream = new SpMemoryStream(); TAddress addr = (TAddress)cbSalidas.SelectedItem; addr.Open(TAPIMEDIATYPES.AUDIO); TCall call = addr.CreateCall(tbNumero.Text, LINEADDRESSTYPES.PhoneNumber, TAPIMEDIATYPES.AUDIO); TTerminal terminal = call.RequestTerminal(TTerminal.MediaStreamTerminal, TAPIMEDIATYPES.AUDIO, TERMINAL_DIRECTION.TD_CAPTURE); //SpMMAudioOutClass audOut = new SpMMAudioOutClass(); SpCustomStream custm = new SpCustomStream(); //audOut.SetDeviceId((uint)(byte)addr.GetID("wave/out").GetValue(0)); //audOut.DeviceId *= 0x01000000; TStream strm; call.SelectTerminalOnCall(terminal); voz.AllowAudioOutputFormatChangesOnNextSet = false; voz.AudioOutputStream = custm; voz.SetVoice((ISpObjectToken)(voces[cbVoces.SelectedIndex])); //voz.SetOutput(audOut, 0); call.Connect(false); //voz.AudioOutput = (SpObjectToken)audOut.DeviceId; //voz.Speak(tbTexto.Text, SpeechVoiceSpeakFlags.SVSFDefault); //call.Disconnect(DISCONNECT_CODE.DC_NORMAL); //voz.SpeakStream(stream, SpeechVoiceSpeakFlags.SVSFDefault);*/ }
private void InitZone(int zoneNum) { //Set up the zone computers to transmit speech and receive audio if (zoneNum < 3) { // Process.Start(@"C:\Users\Blake\Documents\Programming\CSharp\C2program\C2program\scripts\pi_speak.bat", Convert.ToString(zoneNum)); Process.Start(@"..\..\scripts\pi_speak.bat", Convert.ToString(zoneNum)); } else { // Process.Start(@"C:\Users\Blake\Documents\Programming\CSharp\C2program\C2program\scripts\pi_speak_new_mic.bat", Convert.ToString(zoneNum)); Process.Start(@"..\..\scripts\pi_speak_new_mic.bat", Convert.ToString(zoneNum)); } // Process.Start(@"C:\Users\Blake\Documents\Programming\CSharp\C2program\C2program\scripts\pi_listen.bat", Convert.ToString(zoneNum)); Process.Start(@"..\..\scripts\pi_listen.bat", Convert.ToString(zoneNum)); //Set up the voice for each zone // rtpServer[zoneNum - 1] = new RTPServer(zoneAddresses[zoneNum - 1], 1234); // rtpServer[zoneNum - 1].StartServer(); // SpCustomStream vStream = new SpCustomStream(); // vStream.BaseStream = rtpServer[zoneNum - 1].AudioStream; voice[zoneNum - 1] = new C2Voice(zoneNum); // voice[zoneNum - 1].Voice.AudioOutputStream = vStream; //recoContext = new SpSharedRecoContext(); recoContext[zoneNum - 1] = new SpInProcRecoContext(); //set up the socket stream first // mySrStream = new C2SRStream("192.168.2.101", 1234); rtpClient[zoneNum - 1] = new RTPReceiver(zonePortBase + zoneNum); rtpClient[zoneNum - 1].StartClient(); SpCustomStream stream = new SpCustomStream(); // stream.BaseStream = (System.Runtime.InteropServices.ComTypes.IStream)mySrStream; // stream.BaseStream = (System.Runtime.InteropServices.ComTypes.IStream)rtpClient.AudioStream; stream.BaseStream = rtpClient[zoneNum - 1].AudioStream; //SpStream st = new SpStream(); CreateGrammar(zoneNum); this.recoContext[zoneNum - 1].Recognizer.AudioInputStream = stream; //this.recoContext.Recognizer.AudioInputStream = (ISpeechBaseStream) stream.BaseStream; //this.recoContext.Recognizer.AudioInputStream = (ISpeechBaseStream)rtpClient.Stream; //RecoContext.RetainedAudioFormat.Type = SpeechAudioFormatType.SAFT32kHz16BitMono; if (zoneNum < 3) { recoContext[zoneNum - 1].RetainedAudioFormat.Type = SpeechAudioFormatType.SAFT24kHz16BitMono; } else { recoContext[zoneNum - 1].RetainedAudioFormat.Type = SpeechAudioFormatType.SAFT48kHz16BitMono; } //RecoContext.RetainedAudioFormat.Type = SpeechAudioFormatType.SAFT12kHz16BitMono; //RecoContext.EventInterests = SPSEMANTICFORMAT. SRERecognition + SRESoundEnd + SREStreamEnd + SREStreamStart + SRESoundEnd; recoContext[zoneNum - 1].Recognition += new SpeechLib._ISpeechRecoContextEvents_RecognitionEventHandler(InterpretCommand); //RecoContext.Recognition += new _ISpeechRecoContextEvents_ recoContext[zoneNum - 1].Recognizer.SetPropertyNumber("AdaptationOn", 0); //turns adaptation off so it doesn't train to noise }
public C2SRold(Form1 form) { form1 = form; gpio = new C2gpio(1, ""); state = State.IDLE; voice = new C2Voice(1); C2attentionTimer = new Timer(30000); //60 second time out for C2 to stop listening C2attentionTimer.Elapsed += new ElapsedEventHandler(C2attentionTimer_Elapsed); C2attentionTimer.AutoReset = false; missunderstandCount = 0; voice.Speak("C2 standing by and awaiting your instructions!"); //recoContext = new SpSharedRecoContext(); recoContext = new SpInProcRecoContext(); //set up the socket stream first //IPEndPoint receiver = new IPEndPoint(new IPAddress(("192.168.2.101"), 1234); // UdpClient udpClient = new UdpClient("192.168.2.101", 1234); //UdpClient udpClient = new UdpClient(1234); //udpClient.Connect(receiver); // Socket socket = udpClient.Client; //TcpClient tcpClient = new TcpClient("192.168.2.101", 1234); // Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); // socket.Connect("192.168.2.101", 1234); // if (!socket.Connected) // { // form1.statusMsg = "socket was never connected!"; // return; // } //SpMMAudioIn instream = new SpMMAudioIn(); // ASRStreamClass myAsrStream = new ASRStreamClass(); // mySrStream = new C2SRStream("192.168.2.101", 1234); rtpClient = new RTPReceiver(1234); rtpClient.StartClient(); SpCustomStream stream = new SpCustomStream(); // stream.BaseStream = (System.Runtime.InteropServices.ComTypes.IStream)mySrStream; // stream.BaseStream = (System.Runtime.InteropServices.ComTypes.IStream)rtpClient.AudioStream; stream.BaseStream = rtpClient.AudioStream; //SpStream st = new SpStream(); //st. //m_GrammarID = 1; Grammar = this.recoContext.CreateGrammar(0); Grammar.DictationLoad("", SpeechLoadOption.SLOStatic); //our program doesn't do this Grammar.DictationSetState(SpeechRuleState.SGDSActive); //our program doesn't do this // ISpeechGrammarRule CommandsRule; // CommandsRule = Grammar.Rules.Add("CommandsRule", SpeechRuleAttributes.SRATopLevel | SpeechRuleAttributes.SRADynamic, 1); // CommandsRule.Clear(); // object dummy = 0; // string sCommand = "see"; // CommandsRule.InitialState.AddWordTransition(null, sCommand, " ", SpeechGrammarWordType.SGLexical, null, 0, ref dummy, 0); // Grammar.Rules.Commit(); // Grammar.CmdSetRuleState("CommandsRule", SpeechRuleState.SGDSActive); //stream.get this.recoContext.Recognizer.AudioInputStream = stream; //this.recoContext.Recognizer.AudioInputStream = (ISpeechBaseStream) stream.BaseStream; //this.recoContext.Recognizer.AudioInputStream = (ISpeechBaseStream)rtpClient.Stream; //RecoContext.EventInterests = SpeechRecoEvents.SREAllEvents; //RecoContext.RetainedAudioFormat.Type = SpeechAudioFormatType.SAFT32kHz16BitMono; recoContext.RetainedAudioFormat.Type = SpeechAudioFormatType.SAFT24kHz16BitMono; //RecoContext.EventInterests = SPSEMANTICFORMAT. SRERecognition + SRESoundEnd + SREStreamEnd + SREStreamStart + SRESoundEnd; recoContext.Recognition += new SpeechLib._ISpeechRecoContextEvents_RecognitionEventHandler(InterpretCommand); //RecoContext.Recognition += new _ISpeechRecoContextEvents_ recoContext.Recognizer.SetPropertyNumber("AdaptationOn", 0); }