C # - голосовой ввод чат-бота Amazon Lex

Я разрабатываю клиент чат-бота. Мне удалось запустить его с текстовым вводом, и теперь он работает правильно. Теперь я хочу добавить функцию голосового ввода, но в настоящее время возникают проблемы. В настоящее время я использую NAudio для записи своего ввода, но у меня возникает эта ошибка

Внутреннее исключение 1: AmazonServiceException: было создано WebException со статусом RequestCanceled.

Внутреннее исключение 2: WebException: запрос был прерван: запрос был отменен.

Внутреннее исключение 3: IOException: невозможно закрыть поток, пока не будут записаны все байты.

Вот что я сделал до сих пор:

    Boolean voiceEnabled = false;

    private void voiceButton_Click(object sender, EventArgs e)
    {
        if (voiceEnabled)
        {
            voiceButton.BackgroundImage = Properties.Resources.mic_d;
            voiceEnabled = false;
            StopRecord();
        }
        else
        {
            voiceButton.BackgroundImage = Properties.Resources.mic_e;
            voiceEnabled = true;
            StartRecord();
        }


    }

    WaveIn waveIn;
    WaveFileWriter waveWriter;
    Stream memoryStream;


    private void waveIn_DataAvailable(object sender, WaveInEventArgs e)
    {
        if (waveWriter == null) return;

        waveWriter.Write(e.Buffer, 0, e.BytesRecorded);
        waveWriter.Flush();
    }


    private void StartRecord()
    {
        if (memoryStream == null)
            memoryStream = new MemoryStream();

        waveIn = new WaveIn();
        waveIn.DeviceNumber = 0;
        waveIn.WaveFormat = new WaveFormat(16000, 1);

        waveIn.DataAvailable += new EventHandler<WaveInEventArgs>(waveIn_DataAvailable);
        waveWriter = new WaveFileWriter(new IgnoreDisposeStream(memoryStream), waveIn.WaveFormat);
        waveIn.StartRecording();
    }

    private void StopRecord()
    {

        if (waveIn != null)
        {
            waveIn.StopRecording();
            waveIn.Dispose();
            waveIn = null;
        }
        if (waveWriter != null)
        {
            waveWriter.Dispose();
            waveWriter = null;
        }

        SendReq(memoryStream);
    }
    private void SendReq(Stream stream)
    {


        PostContentRequest postContentRequest = new PostContentRequest();

        postContentRequest.BotAlias = "Test";
        postContentRequest.BotName = "TestBot";
        postContentRequest.ContentType = "audio/l16; rate=16000; channels=1";
        postContentRequest.InputStream = stream;
        postContentRequest.UserId = "user";

        Task<PostContentResponse> task = amazonLexClient.PostContentAsync(postContentRequest);

        task.Wait();

        PostContentResponse postContentResponse = task.Result;

        Console.WriteLine(postContentResponse.Message);
        //this just plays the audio
        PlayAudio(postContentResponse.AudioStream);

    }

person Oliver    schedule 05.09.2017    source источник
comment
нашел это с той же проблемой, но также не имеет ответа: Lex chatbot C# клиент с голосом   -  person Oliver    schedule 06.09.2017