/// <summary> /// /// </summary> public WitAiRecognizer() { AddSetting(nameof(Token), o => Token = o, NoEmpty, string.Empty); SupportedSettings.Add(new AudioSettings(AudioFormat.Wav)); SupportedStreamingSettings.Add(new AudioSettings(AudioFormat.Wav)); }
/// <summary> /// Calls InitializeAsync if recorder is not initialized. /// </summary> /// <param name="settings"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public override Task <IRecording> StartAsync(AudioSettings?settings = null, CancellationToken cancellationToken = default) { settings ??= SupportedSettings.First(); return(Task.FromResult <IRecording>(new NAudioRecording( settings, DeviceNumber, NumberOfBuffers))); }
/// <summary> /// /// </summary> /// <param name="bytes"></param> /// <param name="settings"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public override async Task <string> ConvertAsync(byte[] bytes, AudioSettings?settings = null, CancellationToken cancellationToken = default) { settings ??= SupportedSettings.First(); using var client = new HttpClient(); using var request = new HttpRequestMessage(HttpMethod.Post, "https://api.wit.ai/speech") { Headers = { Authorization = AuthenticationHeaderValue.Parse($"Bearer {Token}"), TransferEncodingChunked = true, },
/// <summary> /// /// </summary> public YandexSynthesizer() { HttpClientHandler = new HttpClientHandler(); HttpClient = new HttpClient(HttpClientHandler, false); AddEnumerableSetting(nameof(Language), o => Language = o, NoEmpty, new[] { "en-US", "ru-RU", "tr-TR" }); AddEnumerableSetting(nameof(Voice), o => Voice = o, NoEmpty, new[] { "alena", "oksana", "jane", "alyss", "omazh", "zahar", "ermil", "filipp" }); AddEnumerableSetting(nameof(Emotion), o => Emotion = o, NoEmpty, new[] { "good", "evil", "neutral" }); AddEnumerableSetting(nameof(Speed), o => Speed = o, NoEmpty, new[] { "1.0", "0.1", "0.25", "0.5", "0.75", "1.25", "1.5", "2.0", "3.0" }); SupportedSettings.Add(new AudioSettings(AudioFormat.Raw, 48000)); SupportedSettings.Add(new AudioSettings(AudioFormat.Ogg)); }
/// <summary> /// /// </summary> /// <param name="text"></param> /// <param name="settings"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public override async Task <byte[]> ConvertAsync(string text, AudioSettings?settings = null, CancellationToken cancellationToken = default) { settings ??= SupportedSettings.First(); var key = TextToKey(text, settings); if (UseCache && Cache.Contains(key)) { return(Cache[key]?.ToArray() ?? EmptyArray <byte> .Value); } var bytes = await InternalConvertAsync(text, settings, cancellationToken).ConfigureAwait(false); Cache[key] = bytes; return(bytes); }
/// <summary> /// /// </summary> public YandexRecognizer() { AddSetting(nameof(FolderId), o => FolderId = o, Any, string.Empty); AddSetting(nameof(OAuthToken), o => OAuthToken = o, NoEmpty, string.Empty); AddEnumerableSetting(nameof(Lang), o => Lang = o, NoEmpty, new[] { "ru-RU", "en-US", "uk-UK", "tr-TR" }); AddEnumerableSetting(nameof(Topic), o => Topic = o, NoEmpty, new[] { "general", "maps", "dates", "names", "numbers" }); AddEnumerableSetting(nameof(ProfanityFilter), o => ProfanityFilter = o == "true", NoEmpty, new[] { "false", "true" }); SupportedSettings.Add(new AudioSettings()); SupportedSettings.Add(new AudioSettings(rate: 48000)); SupportedSettings.Add(new AudioSettings(rate: 16000)); SupportedSettings.Add(new AudioSettings(AudioFormat.Ogg)); SupportedStreamingSettings.Add(new AudioSettings()); SupportedStreamingSettings.Add(new AudioSettings(rate: 48000)); SupportedStreamingSettings.Add(new AudioSettings(rate: 16000)); SupportedStreamingSettings.Add(new AudioSettings(AudioFormat.Ogg)); }
/// <summary> /// /// </summary> /// <param name="settings"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public override Task <IRecording> StartAsync(AudioSettings?settings = null, CancellationToken cancellationToken = default) { settings ??= SupportedSettings.First(); return(Task.FromResult <IRecording>(new WinmmRecording(settings))); }
/// <summary> /// /// </summary> public WinmmRecorder() { SupportedSettings.Add(new AudioSettings(AudioFormat.Wav)); }
/// <summary> /// /// </summary> public NAudioRecorder() { SupportedSettings.Add(new AudioSettings()); SupportedSettings.Add(new AudioSettings(AudioFormat.Wav)); SupportedSettings.Add(new AudioSettings(AudioFormat.Mp3)); }