如何在增强兽websocket中传递模型类型

时间:2019-04-02 06:00:06

标签: c++ boost ibm-watson speech-to-text boost-beast

我正在使用c ++ 11,野兽库和IBM语音文本Web服务。

(进行连接的)websocket接口在进行握手时需要authentication token作为请求标头。

请参阅Watson文档中的this code,看来我也必须将模型类型(如果需要)传递为请求标头

var IAM_access_token = '{access_token}';
var wsURI = 'wss://stream.watsonplatform.net/speech-to-text/api/v1/recognize'
     + '?access_token=' + IAM_access_token
     + '&model=es-ES_BroadbandModel';
var websocket = new WebSocket(wsURI);

还提到了curl request format来设置“模型”

curl -X POST -u "apikey:{apikey}"
--header "Content-Type: audio/flac"
--data-binary @{path}audio-file.flac
"https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?model=en-US_NarrowbandModel"

有人可以帮助我弄清楚如何在我的websocket中传递“模型”(在c ++ 11中使用野兽)吗?

这是我传递身份验证令牌的方式:

mWebSocket.async_handshake_ex(mHost, "/speech-to-text/api/v1/recognize",
        [mToken](request_type& reqHead) {
            reqHead.insert(http::field::authorization,mToken);},
        bind(&IbmWebsocketSession::send_start, shared_from_this(), placeholders::_1));

1 个答案:

答案 0 :(得分:0)

按照@ALanBirtles的建议

在网址中将重新获得的model放入

    mWebSocket.async_handshake_ex(mHost, "/speech-to-text/api/v1/recognize?model=en-US_NarrowbandModel",...

工程