這是這個系列的第二篇文章,主要基於上一篇文章中提到服務進行一些基礎的功能實現。python
假定已經完成關於bluemix的註冊和Watson服務的建立。詳細過程將個人上個系列文章。web
建立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服務器
首先,咱們來看下什麼是WebSocket。websocket
WebSocket protocol 是HTML5一種新的協議。它實現了瀏覽器與服務器全雙工通訊(full-duplex)。一開始的握手須要藉助HTTP請求完成。--百度網絡
即時通信是最多見的一種網絡應用,常見的方式是經過http協議。可是http協議是一種非持久的單向的網絡協議。它有一個很大的缺點,就是須要瀏覽器不斷的發送請求,並且一般狀況下,請求頭部都很長,這樣就會浪費大量的資源在不少沒必要要的請求信息中。
而WebSocket彌補了這一缺點,它是一種全雙工通訊協議,在經過http創建握手後,單獨創建一條tcp通道用以服務器和瀏覽器之間的信息傳送。框架
不知道爲何要叫WebSocket,和socket關係並非很大。socket是傳輸層協議,而WebSocket是一個典型的應用層協議。大概是由於創建WebSocket後,服務器和客戶端均可以直接進行信息交互,就像socket同樣,又由於它是應用層的,因此起了個這種複合型名字(我瞎猜的。。。)socket
我使用ws4py進行試驗,這是一個基於python實現的websocket框架。tcp