Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="settings"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public override async Task <IStreamingRecognition> StartStreamingRecognitionAsync(
            AudioSettings?settings = null,
            CancellationToken cancellationToken = default)
        {
            settings ??= SupportedStreamingSettings.First();

            IamToken ??= await RequestIamTokenByOAuthTokenAsync(OAuthToken, cancellationToken).ConfigureAwait(false);

            var channel = new Channel("stt.api.cloud.yandex.net", 443, new SslCredentials());
            var client  = new SttService.SttServiceClient(channel);
            var call    = client.StreamingRecognize(new Metadata
            {
                { "authorization", $"Bearer {IamToken}" }
            }, cancellationToken: cancellationToken);

            await call.RequestStream.WriteAsync(new StreamingRecognitionRequest
            {
                Config = new RecognitionConfig
                {
                    Specification = new RecognitionSpec
                    {
                        LanguageCode    = Lang,
                        ProfanityFilter = ProfanityFilter,
                        Model           = Topic,
                        AudioEncoding   = settings.Format switch
                        {
                            AudioFormat.Ogg => RecognitionSpec.Types.AudioEncoding.OggOpus,
                            AudioFormat.Raw => RecognitionSpec.Types.AudioEncoding.Linear16Pcm,
                            _ => RecognitionSpec.Types.AudioEncoding.Unspecified,
                        },
Esempio n. 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="settings"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public override Task <IStreamingRecognition> StartStreamingRecognitionAsync(AudioSettings?settings = null, CancellationToken cancellationToken = default)
        {
            settings ??= SupportedStreamingSettings.First();

            return(Task.FromResult <IStreamingRecognition>(
                       new WitAiStreamingRecognition(settings, Token)));
        }