| // Copyright 2017 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.speech; |
| |
| [Discoverable] |
| protocol SpeechToText { |
| /// Starts capturing speech from the microphone. |
| BeginCapture(TranscriptionListener transcription_listener); |
| |
| /// Begins hotword detection. Detected hotword utterances are reported on the |
| /// given listener. |
| ListenForHotword(HotwordListener hotword_listener); |
| }; |
| |
| /// Represents an active transcription session. Either side may close this |
| /// interface to indicate that transcription should stop. If the transcription is |
| /// unexpectedly closed before `OnReady` is called, the implementer should treat |
| /// it as an error (in such cases, `OnError` is called). |
| protocol TranscriptionListener { |
| /// Indicates that capture has begun. Prior to this, parts of the system may |
| /// not have been initialized and audio may have been dropped. No calls to |
| /// `OnTranscriptUpdate` will occur before `OnReady` is called. |
| OnReady(); |
| |
| /// Receives updated transcripts. Each call receives the most likely |
| /// transcription of the entire utterance at that time. Previously transcribed |
| /// text may mutate in response to later input. |
| OnTranscriptUpdate(string spoken_text); |
| |
| /// Provides periodic updates on the user's speech signal power, when the |
| /// microphone is open and streaming to the backend. |
| /// `speech_level` is instantaneous speech power, in decibels (negative). |
| OnSpeechLevelUpdate(float32 speech_level); |
| |
| /// An error occurred before or during transcription. Depending on the nature |
| /// of the error, this may occur before `OnReady` is called, and `OnReady` may |
| /// never be called. This binding will be closed immediately after sending this |
| /// message. |
| OnError(); |
| }; |
| |
| /// Listens for hotwords. Each detected hotword utterance triggers `OnHotword`. |
| /// Closure of this handle by the speech service indicates an error. |
| protocol HotwordListener { |
| /// Indicates that capture has begun. Prior to this, parts of the system may |
| /// not have been initialized and audio may have been dropped. No calls to |
| /// `OnHotword` will occur before `OnReady` is called. |
| OnReady(); |
| |
| /// Called for each detected hotword utterance. |
| OnHotword(); |
| }; |