public void AddSamples(List <short> data)
        {
            Sarmata.RecognizeRequest audioRequest = new Sarmata.RecognizeRequest();
            audioRequest.AudioRequest             = new Sarmata.AudioRequest();
            audioRequest.AudioRequest.EndOfStream = false;

            List <byte> samples_bytes = new List <byte>(2 * data.Count);

            foreach (var sample in data)
            {
                samples_bytes.AddRange(BitConverter.GetBytes(sample));
            }
            audioRequest.AudioRequest.Content = Google.Protobuf.ByteString.CopyFrom(samples_bytes.ToArray());
            requestStream.WriteAsync(audioRequest).Wait();
        }
        public SarmataSession(String serviceAddress, Dictionary <String, String> settings)
        {
            asrChannel = new Grpc.Core.Channel(serviceAddress, Grpc.Core.ChannelCredentials.Insecure);
            asrClient  = new Sarmata.ASR.ASRClient(asrChannel);

            var openStream = asrClient.Recognize(cancellationToken: new CancellationToken());

            requestStream  = openStream.RequestStream;
            responseStream = openStream.ResponseStream;


            Sarmata.RecognizeRequest initialMessage = new Sarmata.RecognizeRequest()
            {
                InitialRequest = settings2request(settings)
            };

            requestStream.WriteAsync(initialMessage).Wait();
        }