Ejemplo n.º 1
0
        /// <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));
        }
Ejemplo n.º 2
0
        /// <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)));
        }
Ejemplo n.º 3
0
        /// <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,
                      },
Ejemplo n.º 4
0
        /// <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));
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
        /// <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));
        }
Ejemplo n.º 7
0
        /// <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)));
        }
Ejemplo n.º 8
0
 /// <summary>
 ///
 /// </summary>
 public WinmmRecorder()
 {
     SupportedSettings.Add(new AudioSettings(AudioFormat.Wav));
 }
Ejemplo n.º 9
0
 /// <summary>
 ///
 /// </summary>
 public NAudioRecorder()
 {
     SupportedSettings.Add(new AudioSettings());
     SupportedSettings.Add(new AudioSettings(AudioFormat.Wav));
     SupportedSettings.Add(new AudioSettings(AudioFormat.Mp3));
 }