这是这个系列的第二篇文章,主要基于上一篇文章中提到服务进行一些基础的功能实现。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