From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- .../PocketSphinxSpeechRecognitionService.h | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 dom/media/webspeech/recognition/PocketSphinxSpeechRecognitionService.h (limited to 'dom/media/webspeech/recognition/PocketSphinxSpeechRecognitionService.h') diff --git a/dom/media/webspeech/recognition/PocketSphinxSpeechRecognitionService.h b/dom/media/webspeech/recognition/PocketSphinxSpeechRecognitionService.h new file mode 100644 index 000000000..5b814b9a5 --- /dev/null +++ b/dom/media/webspeech/recognition/PocketSphinxSpeechRecognitionService.h @@ -0,0 +1,85 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim:set ts=2 sw=2 sts=2 et cindent: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef mozilla_dom_PocketSphinxRecognitionService_h +#define mozilla_dom_PocketSphinxRecognitionService_h + +#include "nsCOMPtr.h" +#include "nsTArray.h" +#include "nsIObserver.h" +#include "nsISpeechRecognitionService.h" +#include "speex/speex_resampler.h" + +extern "C" { +#include +#include +} + +#define NS_POCKETSPHINX_SPEECH_RECOGNITION_SERVICE_CID \ + { \ + 0x0ff5ce56, 0x5b09, 0x4db8, { \ + 0xad, 0xc6, 0x82, 0x66, 0xaf, 0x95, 0xf8, 0x64 \ + } \ + }; + +namespace mozilla { + +/** + * Pocketsphix implementation of the nsISpeechRecognitionService interface + */ +class PocketSphinxSpeechRecognitionService : public nsISpeechRecognitionService, + public nsIObserver +{ +public: + // Add XPCOM glue code + NS_DECL_ISUPPORTS + NS_DECL_NSISPEECHRECOGNITIONSERVICE + + // Add nsIObserver code + NS_DECL_NSIOBSERVER + + /** + * Default constructs a PocketSphinxSpeechRecognitionService loading default + * files + */ + PocketSphinxSpeechRecognitionService(); + +private: + /** + * Private destructor to prevent bypassing of reference counting + */ + virtual ~PocketSphinxSpeechRecognitionService(); + + /** The associated SpeechRecognition */ + WeakPtr mRecognition; + + /** + * Builds a mock SpeechRecognitionResultList + */ + dom::SpeechRecognitionResultList* BuildMockResultList(); + + /** Speex state */ + SpeexResamplerState* mSpeexState; + + /** Pocksphix decoder */ + ps_decoder_t* mPSHandle; + + /** Sphinxbase parsed command line arguments */ + cmd_ln_t* mPSConfig; + + /** Flag to verify if decoder was created */ + bool ISDecoderCreated; + + /** Flag to verify if grammar was compiled */ + bool ISGrammarCompiled; + + /** Audio data */ + nsTArray mAudioVector; +}; + +} // namespace mozilla + +#endif -- cgit v1.2.3