public int Recognize(ISoundSignalReader signal, HiddenMarkovModel[] models, out string name, SignalVisitor voiceVisitor = null) { var featureUtility = new FeatureUtility(_engineParameters); signal.Reset(); var features = featureUtility.ExtractFeatures(signal, voiceVisitor).First(); var observations = _codeBook.Quantize(features.Select(item => new Point(item)).ToArray()); var likelyHoodValue = Double.MinValue; name = string.Empty; var index = 0; var ret = 0; foreach (var model in models) { var val = model.Evaluate(observations); if (val > likelyHoodValue) { likelyHoodValue = val; name = model.Tag.ToString(); ret = index; } index++; } return ret; }
public int Recognize(ISoundSignalReader signal, HiddenMarkovClassifier hmm, out string name, SignalVisitor voiceVisitor = null) { var featureUtility = new FeatureUtility(_engineParameters); signal.Reset(); var features = featureUtility.ExtractFeatures(signal, voiceVisitor).First(); var observations = _codeBook.Quantize(features.Select(item => new Point(item)).ToArray()); double[] responsabilities; var ret = hmm.Compute(observations, out responsabilities); var models = hmm.Models; var likelyHoodValue = Double.MinValue; name = string.Empty; foreach (var model in models) { var val = model.Evaluate(observations); if (val > likelyHoodValue) { likelyHoodValue = val; name = model.Tag.ToString(); } } return ret; }
public VoiceActivitySignalReader(ISoundSignalReader signal, int frameSize, int emptyFrames = 3, VoiceActivationDetectionEnhancement enhancements = VoiceActivationDetectionEnhancement.All) { _voiceActivityDetection = new VoiceActivityDetection(signal, frameSize, emptyFrames, enhancements); signal.Reset(); _soundSignal = signal; _properties = new Dictionary<string, object> {{VoiceProperty, false}}; SupportedPropertiesSet.Add(VoiceProperty); }
public int Recognize(ISoundSignalReader signal, out string name, SignalVisitor visitor = null) { var featureUtility = new FeatureUtility(_engineParameters); signal.Reset(); var features = featureUtility.ExtractFeatures(signal, visitor).First(); var observations = _codeBook.Quantize(features.Select(item => new Point(item)).ToArray()); var likelyHoodValue = Double.MinValue; HiddenMarkovModel bestFit = null; var index = 0; var ret = 0; foreach (var model in _models.Values) { var val = model.Evaluate(observations); if (val > likelyHoodValue) { likelyHoodValue = val; bestFit = model; ret = index; } index++; } if (bestFit != null) { var idProp = (IdentificationProperties) bestFit.Tag; name = idProp.Label; } else name = string.Empty; return ret; }