private void AddCustomEffect(IAudioInputNode audioFileInputNode)
        {
            // Create a property set and add a property/value pair
            PropertySet echoProperties = new PropertySet();

            echoProperties.Add("Mix", 0.5f);

            // Instantiate the custom effect defined in the 'CustomEffect' project
            AudioEffectDefinition echoEffectDefinition = new AudioEffectDefinition(typeof(AudioEchoEffect).FullName, echoProperties);

            audioFileInputNode.EffectDefinitions.Add(echoEffectDefinition);
        }
示例#2
0
        private AudioFrameOutputNode AttachSpeechRecognitionMode(IAudioInputNode inputNode)
        {
            var speechRecognitionNode = graph.CreateFrameOutputNode(encoding.Audio);

            graph.QuantumStarted += (AudioGraph sender, object args) =>
            {
                AudioFrame frame = speechRecognitionNode.GetFrame();
                ProcessFrameOutput(frame);
            };

            inputNode.AddOutgoingConnection(speechRecognitionNode);
            return(speechRecognitionNode);
        }
示例#3
0
        private async Task <AudioDeviceOutputNode> AttachDeviceOutputNode(IAudioInputNode inputNode)
        {
            var deviceOutputNodeResult = await graph.CreateDeviceOutputNodeAsync();

            if (deviceOutputNodeResult.Status != AudioDeviceNodeCreationStatus.Success)
            {
                error.Text = String.Format("DeviceOutputNode creation failed because {0}", deviceOutputNodeResult.Status.ToString());
            }
            var deviceOutputNode = deviceOutputNodeResult.DeviceOutputNode;

            inputNode.AddOutgoingConnection(deviceOutputNode);

            return(deviceOutputNode);
        }
示例#4
0
 public PreparedSource(IAudioInputNode node, AudioNodeEmitter emitter)
 {
     Node    = node;
     Emitter = emitter;
 }