Closed abegel closed 5 years ago
Thank you very much for pointing this out! You're correct, AudioCapture
requires .NET 4.7 (on Windows at least - the Linux AudioSource
is .NET Standard).
To keep things simple, we will be updating this code sample to have only on .NET Standard dependencies and no hardware requirements (using a simple .wav
file and AcousticFeatures
component):
using (var p = Pipeline.Create())
{
// Create an audio source component
var waveFileAudioSource = new WaveFileAudioSource(p, "sample.wav");
// Create an acoustic features component
var acousticFeatures = new AcousticFeatures(p);
// Pipe the output of the wave file audio source component into the input of the acoustic features
waveFileAudioSource.Out.PipeTo(acousticFeatures.In);
// Process the output of the acoustic features and print the messages to the console
acousticFeatures.SpectralEntropy.Do(s => Console.WriteLine($"SpectralEntropy: {s}"));
acousticFeatures.LogEnergy.Do(e => Console.WriteLine($"LogEnergy: {e}"));
// Run the pipeline
p.Run();
}
Also, a more complete explanation of audio capture (picking a microphone, etc.) and the voice activity detector behavior will be coming as well in docs specific to those components. We'll keep the Brief Introduction indeed brief for now.
Thanks again!
In the tutorial at https://microsoft.github.io/psi/tutorials/, the sixth code box that creates an audio pipeline for voice activity detection, won't compile. The tutorial should direct the user to add the Microsoft.Psi.Audio.Windows NuGet package. However, this package is not compatible with a .NET Core Console Application (which is what the tutorial directs the reader to create at the beginning); it requires .NET 4.7. So, to make this example work, the user has to create a new Console App with .NET 4.7, install the Microsoft.Psi.Runtime, Microsoft.Psi.Audio.Windows, and Microsoft.Psi.Speech.Windows NuGet packages. Then they have to add using Microsoft.Psi.Audio and using Microsoft.Psi.Speech to their C# code file, and then try out the code.
It might be worth explaining more about how the code picks a microphone to listen to and whether that detector should output anything at all while it runs if it doesn't hear anything. (maybe just test instructions would help).