Forum Replies Created
-
AuthorPosts
-
rikkParticipant
Thanks Halle!
rikkParticipantThanks Halle. I will investigate Rejecto.
If you have a minute, please check the log for anything that looks odd. I believe that I am doing things correctly, but would love your validation. :-)
rikkParticipantAnswering my own question (I think):
I have probed a bit more inside of the OEPocketsphinxController+RapidEars.h and saw that RapidEars is using Objective-C `category’ feature to extend the class. This was a great opportunity for me to learn about the ‘category’ feature of Objective-C.
As I researched more, I found this on Stack Overflow:
http://stackoverflow.com/questions/2567498/objective-c-categories-in-static-libraryAnd doc from Apple:
https://developer.apple.com/library/mac/qa/qa1490/_index.htmlANSWER: Yes, the -ObjC linker flag is indeed required when using any plugins for OpenEars. :-D
rikkParticipantOk, got it. All makes sense. Thanks for your thoughtful answers!
rikkParticipantHalle,
Sincere thanks for the detailed followup.
My app is trying to be a “bad word detector/trainer.” The idea is that the user chooses a session time (e.g. 2 mins) to practice speaking. As they are talking, my app will detect each time they say a “bad word”, and it will display visual feedback (e.g. unhappy face) and a score (i.e. “You said DAMN 3 times so far”). The app continues detecting and reporting as they talk throughout the session. If they say two “bad words” in succession, I’d like to get two responses from OE (e.g. “DAMN”, “DARN”).
My current app kinda works, but often misses “bad words” or combines multiple bad words (said in sequence) into a single response (e.g. “DARN BUMMER”, instead of “DARN” and “BUMMER”.
I’m wondering if I would benefit from your suggestion of recording .WAV (even though I don’t understand why that helps), or if RapidEars is the right choice.
Thoughts?
Thanks again,
RikkrikkParticipantfyi: I solved my issues with start/stop and the app appears to work as expected. :-D
I’m still worried about your comment that my use case is not a good fit for OpenEars (see previous message). ;-)
rikkParticipantOk, you don’t need to explain what “utterance-based design” means. ;-)
My real question is: Why is my use case “contrary to OE’s design”?
Starting, listening for a fixed period of time (minutes), and stopping, seems like the simplest and most normal case imaginable.
Am I missing something?
Thanks again for your great support!
rikkParticipantI apologize for my lack of knowledge in speech recognition science, but I feel like I’m missing something very important. Specifically, what does “utterance-based design” mean?
Note that my time periods are on the order of 2-30 minutes (not seconds).
rikkParticipantThanks for quick reply! I figured that the route changes were red herrings.
Can you please elaborate on “This design is unfortunately not supported.”?
My app simply starts and stops listening for periods of time.
rikkParticipantbtw: I noticed that even in this single session I am seeing multiple:
“A request has been made to start a listening session using startListeningWithLanguageModelAtPath:…, however, there is already a listening session in progress which has not been stopped. Please stop this listening session first ”
… excerpt from orig log posted above…
2015-04-15 12:52:42.784 Dict Shun[7247:2374410] Recognition loop has started
2015-04-15 12:52:42.785 Dict Shun[7247:2374238] Pocketsphinx is now listening.
2015-04-15 12:52:42.886 Dict Shun[7247:2374238] A request has been made to start a listening session using startListeningWithLanguageModelAtPath:dictionaryAtPath:acousticModelAtPath:languageModelIsJSGF:, however, there is already a listening session in progress which has not been stopped. Please stop this listening session first with [[OEPocketsphinxController sharedInstance] stopListening]; and wait to receive the OEEventsObserver callback pocketsphinxDidStopListening before starting a new session. You can still change models in the existing session by using OEPocketsphinxController’s method changeLanguageModelToFile:withDictionary:
2015-04-15 12:52:42.987 Dict Shun[7247:2374238] A request has been made to start a listening session using startListeningWithLanguageModelAtPath:dictionaryAtPath:acousticModelAtPath:languageModelIsJSGF:, however, there is already a listening session in progress which has not been stopped. Please stop this listening session first with [[OEPocketsphinxController sharedInstance] stopListening]; and wait to receive the OEEventsObserver callback pocketsphinxDidStopListening before starting a new session. You can still change models in the existing session by using OEPocketsphinxController’s method changeLanguageModelToFile:withDictionary:
2015-04-15 12:52:43.089 Dict Shun[7247:2374238] A request has been made to start a listening session using startListeningWithLanguageModelAtPath:dictionaryAtPath:acousticModelAtPath:languageModelIsJSGF:, however, there is already a listening session in progress which has not been stopped. Please stop this listening session first with [[OEPocketsphinxController sharedInstance] stopListening]; and wait to receive the OEEventsObserver callback pocketsphinxDidStopListening before starting a new session. You can still change models in the existing session by using OEPocketsphinxController’s method changeLanguageModelToFile:withDictionary:
2015-04-15 12:52:43.912 Dict Shun[7247:2374353] Speech detected…
2015-04-15 12:52:43.912 Dict Shun[7247:2374238] Pocketsphinx has detected speech.
2015-04-15 12:52:44.886 Dict Shun[7247:2374353] End of speech detected…
2015-04-15 12:52:44.887 Dict Shun[7247:2374238] Pocketsphinx has detected a period of silence, concluding an utterance.rikkParticipantUsing OEEventsObserver:
Step 1 (part 2): “at the @interface declaration, add the OEEventsObserverDelegate inheritance. An example of this for a view controller called ViewController would look like this:
@interface ViewController : UIViewController <OEEventsObserverDelegate> {==> The brace messed me up. I replaced with () and its fine.
rikkParticipantIs this in the works? Or does it require Apple to rev WatchKit first?
-
AuthorPosts