Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: chrome/browser/resources/app_list/speech_recognition_manager.js

Issue 992173002: Delete the old hotwording integration. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@hotword-remove-disable-option
Patch Set: Rebase. Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 /**
6 * @fileoverview The manager of speech recognition.
7 */
8
9 cr.define('speech', function() {
10 'use strict';
11
12 /**
13 * @constructor
14 */
15 function SpeechRecognitionManager(delegate) {
16 this.isActive = true;
17 this.delegate_ = delegate;
18
19 this.recognizer_ = new window.webkitSpeechRecognition();
20 this.recognizer_.continuous = true;
21 this.recognizer_.interimResults = true;
22 this.recognizer_.lang = navigator.language;
23
24 this.recognizer_.onresult = this.onRecognizerResult_.bind(this);
25 if (this.delegate_) {
26 this.recognizer_.onstart =
27 this.delegate_.onSpeechRecognitionStarted.bind(this.delegate_);
28 this.recognizer_.onend =
29 this.delegate_.onSpeechRecognitionEnded.bind(this.delegate_);
30 this.recognizer_.onspeechstart =
31 this.delegate_.onSpeechStarted.bind(this.delegate_);
32 this.recognizer_.onspeechend =
33 this.delegate_.onSpeechEnded.bind(this.delegate_);
34 this.recognizer_.onerror = this.onRecognizerError_.bind(this);
35 }
36 }
37
38 /**
39 * Called when new speech recognition results arrive.
40 *
41 * @param {Event} speechEvent The event to contain the recognition results.
42 * @private
43 */
44 SpeechRecognitionManager.prototype.onRecognizerResult_ = function(
45 speechEvent) {
46 // Do not collect interim result for now.
47 var result = '';
48 var isFinal = false;
49 for (var i = 0; i < speechEvent.results.length; i++) {
50 if (speechEvent.results[i].isFinal)
51 isFinal = true;
52 result += speechEvent.results[i][0].transcript;
53 }
54 if (this.delegate_)
55 this.delegate_.onSpeechRecognized(result, isFinal);
56 };
57
58 /**
59 * Called when an error happens in speech recognition.
60 *
61 * @param {SpeechRecognitionError} error The error data.
62 * @private
63 */
64 SpeechRecognitionManager.prototype.onRecognizerError_ = function(error) {
65 if (error.error == 'language-not-supported') {
66 // Falls back to English and restart.
67 this.recognizer_.lang = 'en-US';
68 this.start();
69 } else {
70 this.delegate_.onSpeechRecognitionError(error);
71 }
72 };
73
74 /**
75 * Starts the speech recognition through webkitSpeechRecognition.
76 */
77 SpeechRecognitionManager.prototype.start = function() {
78 this.recognizer_.start();
79 };
80
81 /**
82 * Stops the ongoing speech recognition.
83 */
84 SpeechRecognitionManager.prototype.stop = function() {
85 this.recognizer_.abort();
86 };
87
88 return {
89 SpeechRecognitionManager: SpeechRecognitionManager
90 };
91 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/app_list/speech_manager.js ('k') | chrome/browser/resources/app_list/start_page.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698