再探Watson服務(二)

這是這個系列的第二篇文章,主要基於上一篇文章中提到服務進行一些基礎的功能實現。python

二. 基本服務簡單使用

2.1 speech to text(語音文本轉換)

假定已經完成關於bluemix的註冊和Watson服務的建立。詳細過程將個人上個系列文章。web

2.1.1 使用watson_developer_cloud

建立test.py,使用本身錄製的一段音頻test.wav(就說了一句hello world)。json

from watson_developer_cloud import SpeechToTextV1
import json
import wave

test = SpeechToTextV1(username="你的用戶名", password="你的密碼")

audio_file = open("test.wav", "rb")

#print(audio_file.getnchannels())

print (json.dumps(test.recognize(audio_file, content_type="audio/wav"), indent=2))

注意,這裏用戶名和密碼是建立服務後,默認生成的。不是bluemix的帳戶名和密碼。
結果以下:瀏覽器

{
  "results": [
    {
      "alternatives": [
        {
          "confidence": 0.19,
          "transcript": "hello world "
        }
      ],
      "final": true
    }
  ],
  "result_index": 0
}

很簡單的調用。可是在實際應用中,不可能說是先錄好一段音,而後打包上傳,再等待結果分析,因此下面着重介紹一下另外一種接口實現方式--WebSocket服務器

2.1.2 使用WebSocket接口

首先,咱們來看下什麼是WebSocket。websocket

WebSocket protocol 是HTML5一種新的協議。它實現了瀏覽器與服務器全雙工通訊(full-duplex)。一開始的握手須要藉助HTTP請求完成。--百度網絡

即時通信是最多見的一種網絡應用,常見的方式是經過http協議。可是http協議是一種非持久的單向的網絡協議。它有一個很大的缺點,就是須要瀏覽器不斷的發送請求,並且一般狀況下,請求頭部都很長,這樣就會浪費大量的資源在不少沒必要要的請求信息中。
而WebSocket彌補了這一缺點,它是一種全雙工通訊協議,在經過http創建握手後,單獨創建一條tcp通道用以服務器和瀏覽器之間的信息傳送。框架

不知道爲何要叫WebSocket,和socket關係並非很大。socket是傳輸層協議,而WebSocket是一個典型的應用層協議。大概是由於創建WebSocket後,服務器和客戶端均可以直接進行信息交互,就像socket同樣,又由於它是應用層的,因此起了個這種複合型名字(我瞎猜的。。。)socket

我使用ws4py進行試驗,這是一個基於python實現的websocket框架。tcp

相關文章
相關標籤/搜索