再探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

相关文章
相关标签/搜索