使用ibmwatson服务C#进行语音到文本转换



我正试图使用ibmwatson服务和websocketsharp发送一个语音到文本的音频文件(.wav)。在遵循本教程的同时,对text/websockets进行演讲。

我正在做以下

                var ws = new WebSocket("wss://stream.watsonplatform.net/speech-to-text/api/v1/recognize?watson-token=" + token);
                ws.OnOpen += ws_OnOpen;
                ws.OnMessage += ws_OnMessage;
                ws.OnClose += ws_OnClose;
                ws.OnError += ws_OnError;
                ws.Connect();
                string startActionjson = "{'action': 'start', 'content-type': 'audio/wav', 'continuous' : true, 'interim_results': true, 'inactivity_timeout': -1,}";
                ws.SendAsync(startActionjson, b =>
                {
                    if (b == true)
                    {
                        //send the audio as binary
                        string filePath = "E:\Test Folders\Sample\test003.wav";
                        byte[] bytes = System.IO.File.ReadAllBytes(filePath);
                        ws.SendAsync(bytes, b1 =>
                        {
                            if(b1)
                                ws.Close();
                        });
                    }
                });

发送启动操作后,我的websocket的readystate保持打开状态,但一旦发送字节的行执行,我就会在我的OnMessage事件中收到以下消息

 {
  "name": "error", 
  "error": "Expecting property name: line 1 column 2 (char 1)"
 }

并且readystate将自身更新为"Closed"。

我也尝试过发送FileStream,它在chrome和firefox上都这样做。对解决方案的任何帮助或指导都将是非常可观的。

感谢

我找到了解决方案,并且在发送正确的json以启动操作时出现问题。我将其更新为以下

 string startActionjson = "{"action": "start", "content-type": "audio/wav", "continuous" : true, "interim_results": true}";

尽管我尝试了JsonLint上发布的json,但它是有效的。奇怪但仍在工作

相关内容

  • 没有找到相关文章

最新更新