首页 文章

如何使用curl访问IBM语音到文本api?

提问于
浏览
2

我无法使用curl访问IBM Bluemix上的语音到文本API!我尝试使用curl的无会话请求的文档中的示例,但它不起作用;我收到了无效的用户ID /密码消息 .

这是我得到的错误:

“{”code“:401,”error“:”Not Authorized“,”description“:”2016-10-08T15:22:37-04:00,访问https://158.85时出现错误ERCDPLTFRM-DNLKUPERR . 132.94:443 / speech-to-text / api / v1 / recognition?timestamps = true&word_alternatives_threshold = 0.9&continuous = true,无效的UserId和/或密码 . 请确认您的凭据与您尝试访问的终端相匹配 . 一个常见错误是尝试使用针对GA版本的实验版或测试版发布的凭据,反之亦然“}”

任何人都可以向我展示一个如何通过curl获取api无会话请求到语音到文本api的工作示例吗?

3 回答

  • 3

    我的问题是我的凭据周围有大括号 . 教程说:

    curl -X POST -u {username}:{password}
    

    所以我输入了我的用户名和密码但是我留下了大括号 . 没有大括号,效果会更好!

  • 3

    无会话调用的文档可用here .

    确保创建Watson Speech-to-Text服务的实例并使用该服务的凭据(而不是您的Bluemix用户ID和密码) .

    您可以在Bluemix UI中创建服务并获取凭据,也可以通过命令行创建它:

    $ cf create-service speech_to_text standard my_service
    

    然后您可以创建服务凭据并获取它:

    $ cf create-service-key my_service credentials-1
    
    $ cf service-key my_service credentials-1
    Getting key credentials-1 for service instance my_service as adasilva@us.ibm.com...
    
    {
     "password": "FJXUG6????",
     "url": "https://stream.watsonplatform.net/speech-to-text/api",
     "username": "147e438e-f633-4e40-8351-aaaaaaaaaa"
    }
    

    然后,您可以在curl脚本中使用上面的用户名和密码 . 请参阅下面的curl命令和结果(为了安全起见,我屏蔽了用户名,密码和其他字段):

    $ curl -X POST -v -u '80062070-1f88-4943-9a2a-aaaaaaa':'hwtTg???????' \
    > --header 'Content-Type: audio/flac' \
    > --data-binary @audio-file1.flac \
    > 'https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?timestamps=true&continuous=true'
    *   Trying 158.85.132.94...
    * Connected to stream.watsonplatform.net (158.85.132.94) port 443 (#0)
    * TLS 1.2 connection using TLS_RSA_WITH_AES_256_GCM_SHA384
    * Server certificate: *.watsonplatform.net
    * Server certificate: GeoTrust SSL CA - G3
    * Server certificate: GeoTrust Global CA
    * Server auth using Basic with user '80062070-1f88-4943-9a2a-aaaaaaa'
    > POST /speech-to-text/api/v1/recognize?timestamps=true&continuous=true HTTP/1.1
    > Host: stream.watsonplatform.net
    > Authorization: Basic ODAwNjIwNzAtMWY4OC00OTQzLTlhMmEtYzE0OWVmOTJkM2IyOmh3dXXXXXX==
    > User-Agent: curl/7.43.0
    > Accept: */*
    > Content-Type: audio/flac
    > Content-Length: 48363
    > Expect: 100-continue
    > 
    < HTTP/1.1 100 Continue
    < X-Note: Gateway Ack
    * We are completely uploaded and fine
    < HTTP/1.1 200 OK
    < X-Backside-Transport: OK OK
    < Connection: Keep-Alive
    < Transfer-Encoding: chunked
    < Session-Name: LBBROMXYTJZKKEGE-en-US_BroadbandModel
    < X-Content-Type-Options: nosniff
    < Content-Disposition: inline; filename="result.json"
    < X-XSS-Protection: 1
    < Date: Sat, 08 Oct 2016 22:45:02 GMT
    < Via: 1.1 c6a59f5, 1.1 022614b, HTTP/1.1 d941b9b
    < Content-Type: application/json
    < Server: -
    < Set-Cookie: Watson-REMOVED; path=/speech-to-text/api; secure; HttpOnly
    < X-Client-IP: 71.70.244.18
    < X-Global-Transaction-ID: 775715492
    < X-DP-Watson-Tran-ID: stream-dp02-775715492
    < 
    {
       "results": [
          {
             "alternatives": [
                {
                   "timestamps": [
                      [
                         "the", 
                         0.03, 
                         0.09
                      ], 
                      [
                         "latest", 
                         0.09, 
                         0.6
                      ], 
                      [
                         "weather", 
                         0.6, 
                         0.85
                      ], 
                      [
                         "report", 
                         0.85, 
                         1.52
                      ]
                   ], 
                   "confidence": 0.98, 
                   "transcript": "the latest weather report "
                }
             ], 
             "final": true
          }
       ], 
       "result_index": 0
    * Connection #0 to host stream.watsonplatform.net left intact
    
  • 1

    我遇到了同样的问题 . 经过多次尝试,我发现URL错误 . 记住服务凭据信息:

    {“url”:“https://stream-fra.watsonplatform.net/text-to-speech/api”,“username”:“xxxxx-xxxxx-xxxxx-xxxxx”,“password”:“yyyyyyy”}

    然后,您必须使用该信息中提供的URL . 以下是对我的好请求:

    E:/Curl/curl.exe -X GET -u“xxxxx-xxxxx-xxxxx-xxxxx”:“yyyyyyy” - 输出hello_world.wav“https://stream-fra.watsonplatform.net/text-to-语音/ API / V1 /合成?接受=音频/ WAV和文字=你好%20world和语音= EN-US_AllisonVoice”

相关问题