/** * Режим потокового распозанвания текста */ 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); }