static void Main(string[] args) { // 音源を取得するインスタンスを生成する using (KinectAudioSource source = new KinectAudioSource()) { // SingleChannelAec:シングルチャネルのマイクで、エコーキャンセルを使用する // OptibeamArrayOnly:マルチチャネルのマイクのみを使用する(エコーキャンセルを使用しない) // OptibeamArrayAndAec:マルチチャネルのマイクと、エコーキャンセルを使用する) // SingleChannelNsAgc:シングルチャネルのマイクのみを使用する(エコーキャンセルを使用しない) source.SystemMode = SystemMode.SingleChannelAec; using (Stream audioStream = source.Start()) { Console.WriteLine("Start... Press any key"); byte[] buffer = new byte[4096]; Win32.StreamingWavePlayer player = new Win32.StreamingWavePlayer(16000, 16, 1, 100); while (!Console.KeyAvailable) { var a = audioStream.Position; var b = audioStream.Seek(0, SeekOrigin.Current); int count = audioStream.Read(buffer, 0, buffer.Length); player.Output(buffer); } } } }
static void Main(string[] args) { // 音源を取得するインスタンスを生成する using (KinectAudioSource source = new KinectAudioSource()) { // SingleChannelAec:シングルチャネルのマイクで、エコーキャンセルを使用する // OptibeamArrayOnly:マルチチャネルのマイクのみを使用する(エコーキャンセルを使用しない) // OptibeamArrayAndAec:マルチチャネルのマイクと、エコーキャンセルを使用する) // SingleChannelNsAgc:シングルチャネルのマイクのみを使用する(エコーキャンセルを使用しない) source.SystemMode = SystemMode.OptibeamArrayOnly; source.BeamChanged += new EventHandler <BeamChangedEventArgs>(source_BeamChanged); using (Stream audioStream = source.Start()) { Console.WriteLine("Start... Press any key"); byte[] buffer = new byte[4096]; Win32.StreamingWavePlayer player = new Win32.StreamingWavePlayer(16000, 16, 1, 100); while (!Console.KeyAvailable) { int count = audioStream.Read(buffer, 0, buffer.Length); player.Output(buffer); // 詳細な音源方向の信頼性がある場合、音源方向を更新する if (source.SoundSourcePositionConfidence > 0.9) { Console.Write("詳細な音源方向(推定) : {0}\t\tビーム方向 : {1}\r", source.SoundSourcePosition, source.MicArrayBeamAngle); } } } } }
static void Main( string[] args ) { // 音源を取得するインスタンスを生成する using ( KinectAudioSource source = new KinectAudioSource() ) { // SingleChannelAec:シングルチャネルのマイクで、エコーキャンセルを使用する // OptibeamArrayOnly:マルチチャネルのマイクのみを使用する(エコーキャンセルを使用しない) // OptibeamArrayAndAec:マルチチャネルのマイクと、エコーキャンセルを使用する) // SingleChannelNsAgc:シングルチャネルのマイクのみを使用する(エコーキャンセルを使用しない) source.SystemMode = SystemMode.OptibeamArrayOnly; source.BeamChanged += new EventHandler<BeamChangedEventArgs>( source_BeamChanged ); using ( Stream audioStream = source.Start() ) { Console.WriteLine( "Start... Press any key" ); byte[] buffer = new byte[4096]; Win32.StreamingWavePlayer player = new Win32.StreamingWavePlayer( 16000, 16, 1, 100 ); while ( !Console.KeyAvailable ) { int count = audioStream.Read( buffer, 0, buffer.Length ); player.Output( buffer ); // 詳細な音源方向の信頼性がある場合、音源方向を更新する if ( source.SoundSourcePositionConfidence > 0.9 ) { Console.Write( "詳細な音源方向(推定) : {0}\t\tビーム方向 : {1}\r", source.SoundSourcePosition, source.MicArrayBeamAngle ); } } } } }
static void Main( string[] args ) { // 音源を取得するインスタンスを生成する using ( KinectAudioSource source = new KinectAudioSource() ) { // SingleChannelAec:シングルチャネルのマイクで、エコーキャンセルを使用する // OptibeamArrayOnly:マルチチャネルのマイクのみを使用する(エコーキャンセルを使用しない) // OptibeamArrayAndAec:マルチチャネルのマイクと、エコーキャンセルを使用する) // SingleChannelNsAgc:シングルチャネルのマイクのみを使用する(エコーキャンセルを使用しない) source.SystemMode = SystemMode.SingleChannelAec; using ( Stream audioStream = source.Start() ) { Console.WriteLine( "Start... Press any key" ); byte[] buffer = new byte[4096]; Win32.StreamingWavePlayer player = new Win32.StreamingWavePlayer( 16000, 16, 1, 100 ); while ( !Console.KeyAvailable ) { var a = audioStream.Position; var b = audioStream.Seek( 0, SeekOrigin.Current ); int count = audioStream.Read( buffer, 0, buffer.Length ); player.Output( buffer ); } } } }