forked from googleapis/google-cloud-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathresult.py
More file actions
134 lines (106 loc) · 4.42 KB
/
Copy pathresult.py
File metadata and controls
134 lines (106 loc) · 4.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# Copyright 2016 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Speech result representations."""
from google.cloud.speech.alternative import Alternative
class Result(object):
"""Speech recognition result representation.
This is the object that comes back on sync or async requests
(but not streaming requests).
:type alternatives: list
:param alternatives: List of
:class:`~google.cloud.speech.alternative.Alternative`.
"""
def __init__(self, alternatives):
self.alternatives = alternatives
@classmethod
def from_pb(cls, result):
"""Factory: construct instance of ``Result``.
:type result: :class:`~google.cloud.proto.speech.v1\
.cloud_speech_pb2.SpeechRecognitionResult`
:param result: Instance of ``SpeechRecognitionResult`` protobuf.
:rtype: :class:`~google.cloud.speech.result.Result`
:returns: Instance of ``Result``.
"""
alternatives = [Alternative.from_pb(alternative) for alternative
in result.alternatives]
return cls(alternatives=alternatives)
@classmethod
def from_api_repr(cls, result):
"""Factory: construct instance of ``Result``.
:type result: dict
:param result: Dictionary of a :class:`~google.cloud.proto.speech.\
v1.cloud_speech_pb2.SpeechRecognitionResult`
:rtype: :class:`~google.cloud.speech.result.Result`
:returns: Instance of ``Result``.
"""
alternatives = [Alternative.from_api_repr(alternative) for alternative
in result['alternatives']]
return cls(alternatives=alternatives)
@property
def confidence(self):
"""Return the confidence for the most probable alternative.
:rtype: float
:returns: Confidence value, between 0 and 1.
"""
return self.alternatives[0].confidence
@property
def transcript(self):
"""Return the transcript for the most probable alternative.
:rtype: str
:returns: Speech transcript.
"""
return self.alternatives[0].transcript
class StreamingSpeechResult(object):
"""Streaming speech result representation.
:type alternatives: list
:param alternatives: List of
:class:`~google.cloud.speech.alternative.Alternative`.
:type is_final: bool
:param is_final: Boolean indicator of results finality.
:type stability: float
:param stability: 0.0-1.0 stability score for the results returned.
"""
def __init__(self, alternatives, is_final=False, stability=0.0):
self.alternatives = alternatives
self.is_final = is_final
self.stability = stability
@classmethod
def from_pb(cls, response):
"""Factory: construct instance of ``StreamingSpeechResult``.
:type response: :class:`~google.cloud.proto.speech.v1\
.cloud_speech_pb2.StreamingRecognizeResult`
:param response: Instance of ``StreamingRecognizeResult`` protobuf.
:rtype: :class:`~google.cloud.speech.result.StreamingSpeechResult`
:returns: Instance of ``StreamingSpeechResult``.
"""
alternatives = [Alternative.from_pb(result) for result
in response.alternatives]
is_final = response.is_final
stability = response.stability
return cls(alternatives=alternatives, is_final=is_final,
stability=stability)
@property
def confidence(self):
"""Return the confidence for the most probable alternative.
:rtype: float
:returns: Confidence value, between 0 and 1.
"""
return self.alternatives[0].confidence
@property
def transcript(self):
"""Return the transcript for the most probable alternative.
:rtype: str
:returns: Speech transcript.
"""
return self.alternatives[0].transcript