我遇到了Amazon Lex語音輸入編碼問題。爲亞馬遜Lex編碼語音輸入?
如果我給你的InputStream爲空,它的作品,我收到來自萊克斯默認的聲音回答:「我怎麼能幫助你」
var amazonLexClient = new AmazonLexClient("APPID", "APPSECRET", Amazon.RegionEndpoint.USEast1);
var amazonPostRequest = new Amazon.Lex.Model.PostContentRequest();
var amazonPostResponse = new Amazon.Lex.Model.PostContentResponse();
amazonPostRequest.BotAlias = "BookTrip";
amazonPostRequest.BotName = "BookTrip";
amazonPostRequest.ContentType = "audio/l16; rate=16000; channels=1";
amazonPostRequest.UserId = "user";
amazonPostRequest.InputStream = null;
amazonPostResponse = await amazonLexClient.PostContentAsync(amazonPostRequest);
如果我嘗試發送錄製的語音「你怎麼樣」使用編碼(由Lex需要:16KHz的,8位,1個通道)下面
var amazonLexClient = new AmazonLexClient("APPID", "APPSECRET", Amazon.RegionEndpoint.USEast1);
var amazonPostRequest = new Amazon.Lex.Model.PostContentRequest();
var amazonPostResponse = new Amazon.Lex.Model.PostContentResponse();
amazonPostRequest.BotAlias = "BookTrip";
amazonPostRequest.BotName = "BookTrip";
amazonPostRequest.ContentType = "audio/l16; rate=16000; channels=1";
amazonPostRequest.UserId = "user";
amazonPostRequest.InputStream = new MemoryStream();
WaveFormat target = new WaveFormat(16000, 8, 1);
WaveStream streamIn = new WaveFileReader("F:\\Whatever.wav");
WaveFormatConversionStream str = new WaveFormatConversionStream(target, streamIn);
WaveFileWriter.WriteWavFileToStream(amazonPostRequest.InputStream, str);
amazonPostResponse = await amazonLexClient.PostContentAsync(amazonPostRequest);
然後,它不工作,經過約20〜25秒萊克斯服務器將返回null。
Amazon.Runtime.AmazonUnmarshallingException: 'Error unmarshalling response back from AWS.'
NullReferenceException: Object reference not set to an instance of an object.
誰能告訴我如何編碼WAV文件,使之與亞馬遜萊克斯工作? Btw即時通訊使用Visual Studio 2017,C#與NAudio庫。
請閱讀[問]。您不應將代碼作爲圖像發佈,而應將文字發佈爲 –
您是否找到解決方案? – Milk
[Lex chatbot C#客戶端語音]可能重複(https://stackoverflow.com/questions/45026213/lex-chatbot-c-sharp-client-with-voice) – Oliver