/**
         * Режим потокового распозанвания текста
         */
        static void DoSttStreaming(Options args, ILoggerFactory _loggerFactory)
        {
            RecognitionSpec rSpec = new RecognitionSpec()
            {
                LanguageCode    = args.lang,
                ProfanityFilter = false,
                Model           = args.model,
                PartialResults  = false,    //возвращать только финальные результаты false
                AudioEncoding   = args.audioEncoding,
                SampleRateHertz = args.sampleRate
            };


            SpeechKitSttStreamClient speechKitClient =
                new SpeechKitSttStreamClient(new Uri("https://stt.api.cloud.yandex.net:443"), args.folderId, args.iamToken, rSpec, _loggerFactory);    //

            // Subscribe for speech to text events comming from SpeechKit
            SpeechKitClient.SpeechToTextResponseReader.ChunkRecived += SpeechToTextResponseReader_ChunksRecived;


            FileStreamReader filereader = new FileStreamReader(args.inputFilePath);

            // Subscribe SpeechKitClient for next portion of audio data
            filereader.AudioBinaryRecived += speechKitClient.Listener_SpeechKitSend;
            filereader.ReadAudioFile().Wait();

            Log.Information("Shutting down SpeechKitStreamClient gRPC connections.");
            speechKitClient.Dispose();

            if (!string.IsNullOrEmpty(notFinalBuf))
            {
                outFile.Write(Encoding.UTF8.GetBytes(notFinalBuf));     //Write final results into file
            }
        }
        private static void DoCreateTasks(Configuration cfg, ILoggerFactory _loggerFactory)
        {
            IS3Client s3Client = serviceProvider.GetService <IS3Client>();

            string dbFile = Path.Combine(cfg.outputPath, TASK_DB_FILE_NAME);

            Log.Information($"Store recognition tasks list into {dbFile}");

            SkTaskDb taskDb = new SkTaskDb(dbFile, Log.Logger);


            RecognitionSpec rSpec = new RecognitionSpec()
            {
                LanguageCode    = cfg.lang,
                ProfanityFilter = true,
                Model           = cfg.model,
                LiteratureText  = cfg.punctuation,
                PartialResults  = false, //возвращать только финальные результаты false
                AudioEncoding   = cfg.audioEncoding,
                SampleRateHertz = cfg.sampleRate
            };

            SkRecognitionClient recognitionClient = new SkRecognitionClient(new Uri("https://stt.api.cloud.yandex.net:443"),
                                                                            cfg.folderId, cfg.iamToken, rSpec, _loggerFactory, taskDb);

            s3Client.ProcessBucket(cfg.bucket, recognitionClient);

            Log.Information($"Found {taskDb.Count} objects");
        }
        public SpeechKitSttStreamClient(Uri address, string folderId, string IamToken,
                                        RecognitionSpec rSpec, ILoggerFactory loggerFactory) : base(address, IamToken)
        {
            this.rConf = new RecognitionConfig()
            {
                FolderId      = folderId,
                Specification = rSpec
            };

            speechKitRpctClient = new SttService.SttServiceClient(MakeChannel(loggerFactory));
        }
        public SkRecognitionClient(Uri address, string folderId, string IamToken, RecognitionSpec rSpec,
                                   ILoggerFactory loggerFactory, ISkTaskDb taskDb)
        {
            this.log             = loggerFactory.CreateLogger <SkRecognitionClient>();
            this.taskDb          = taskDb;
            this.endpointAddress = address;
            this.IamToken        = IamToken;

            this.rConf = new RecognitionConfig()
            {
                FolderId      = folderId,
                Specification = rSpec
            };

            SslCredentials sslCred = new Grpc.Core.SslCredentials();
            var            chn     = GrpcChannel.ForAddress(endpointAddress, new GrpcChannelOptions {
                LoggerFactory = loggerFactory
            });

            speechKitRpctClient = new SttService.SttServiceClient(chn);
        }