speech recognition?

Hello –

I’m trying to get speech recognition to work with iStopMotion for Mac. My microphone is hooked up to my Mac Pro via a USB interface; when I check the “Sound” System Preferences, under “Input”, the USB interface is selected and I get an onscreen reading on the Input level when I speak into the mic, so I know that part is working.

Now I go to iStopMotion’s Preferences, and under Shortcuts, I turn on “Enable Speech Phrases”. I go back to the program and say “capture” into my mic, but nothing happens. There’s a microphone icon in the lower right corner; should it be lighting up or blinking or something? It isn’t.

Trying to troubleshoot, I wonder do I need a mic that plugs directly into the back of the computer? Does “voice recognition” need to be enabled on my Mac, on a “broader” level?

Any help would be greatly appreciated. I have an iStopMotion 2 license, and am trying now to use the 3.1.1 trial version. I will upgrade if I can get the speech recognition working.

Thanks.

You are doing everything the right way: We are using the System Sound Input as you mentioned, you don’t have enable this feature anywhere else in the system, just in the Shortcut preferences of iStopMotion.

The microphone icon in the lower right corner of the document window indicates that everything should be setup correctly. The computer waits until it hears “something” and indicates this by some animating audio waves next to the microphone (there seems to be a bug, so that it only shows some pixels, not animating). Once you stopped speaking the speech phrase should appear on the left side of the microphone and be executed (or a “not recognized” text will appear).

It won’t work if you are sitting in a noisy environment. The Speech Recognizer needs some “silents” to indicate when a speech begins.

Which MacOS are you running?

I’m using 10.8.4. My office is perfectly quiet, so there can’t be any noise interference. The microphone icon just appears, but there’s never any kind of animation, or any words next to it.

Hm, thats quite unexpected. Please, can you check the “Console” application and see if there are any log outputs that might have something to do with it when you switch on the speech recognizer in iStopMotion and speak something?

I’ve been dealing with Angy via email on this issue too; I sent her the Console log, which I’ll paste in here too. Just so you know, I tried to take a shot by saying “capture”, then I manually clicked the capture button to make sure it was working properly, then tried saying “capture” again. I don’t know how much of that is reflected in the log, but that’s what I did.

9/12/13 3:47:51.685 PM _coreaudiod[607]: audit warning: soft /var/audit
9/12/13 3:47:51.685 PM _coreaudiod[608]: audit warning: allsoft
9/12/13 3:47:51.686 PM _coreaudiod[609]: audit warning: closefile /var/audit/20130912204704.20130912204751
9/12/13 3:48:03.000 PM kernel[0]: Sandbox: sandboxd(613) deny mach-lookup com.apple.coresymbolicationd
9/12/13 3:48:04.123 PM SpeechRecognitionServer[614]: Error loading /Library/Audio/Plug-Ins/HAL/DVCPROHDAudio.plugin/Contents/MacOS/DVCPROHDAudio: dlopen(/Library/Audio/Plug-Ins/HAL/DVCPROHDAudio.plugin/Contents/MacOS/DVCPROHDAudio, 262): no suitable image found. Did find:
/Library/Audio/Plug-Ins/HAL/DVCPROHDAudio.plugin/Contents/MacOS/DVCPROHDAudio: no matching architecture in universal wrapper
9/12/13 3:48:04.123 PM SpeechRecognitionServer[614]: Cannot find function pointer NewPlugIn for factory C5A4CE5B-0BB8-11D8-9D75-0003939615B6 in CFBundle/CFPlugIn 0x7f975ac12500 </Library/Audio/Plug-Ins/HAL/DVCPROHDAudio.plugin> (bundle, not loaded)
9/12/13 3:48:04.170 PM sandboxd[613]: ([611]) iStopMotion(611) deny mach-lookup com.apple.SystemConfiguration.PPPController
9/12/13 3:48:04.371 PM coreaudiod[166]: Disabled automatic stack shots because audio IO is active
9/12/13 3:48:04.482 PM com.apple.SecurityServer[15]: Killing auth hosts
9/12/13 3:48:04.482 PM com.apple.SecurityServer[15]: Session 100030 destroyed
9/12/13 3:48:04.482 PM com.apple.SecurityServer[15]: Session 100034 created
9/12/13 3:48:14.321 PM librariand[580]: client process 611 does not have a valid com.apple.developer.ubiquity-container-identifiers entitlement
9/12/13 3:48:14.321 PM librariand[580]: error in handle_container_path_request: LibrarianErrorDomain/9/The client process does not have a valid com.apple.developer.ubiquity-container-identifiers entitlement
9/12/13 3:48:14.354 PM iStopMotion[611]: -[ISMDigitalStillCameraManager deviceBrowser:didAddDevice:moreComing:] - <ICDeviceBrowser: 0x7cda59c0>
9/12/13 3:48:14.473 PM com.apple.security.pboxd[618]: CGSGetWindowTags: Invalid window 0x116
9/12/13 3:48:14.474 PM com.apple.security.pboxd[618]: kCGErrorFailure: CGSSetHideOnDeact: error getting window tags
9/12/13 3:48:14.631 PM com.apple.security.pboxd[618]: CGSCopyWindowColorSpace: Invalid window 0x116
9/12/13 3:48:19.047 PM com.apple.security.pboxd[618]: CGSReleaseWindow: Invalid window 278
9/12/13 3:48:19.048 PM com.apple.security.pboxd[618]: _NXTermWindow: error releasing window (1000)
9/12/13 3:48:19.092 PM iStopMotion[611]: movie <ISMMovie: 0x7cd33940>
9/12/13 3:48:19.112 PM iStopMotion[611]: movie <ISMMovie: 0x7cd33940>
9/12/13 3:48:20.885 PM com.apple.SecurityServer[15]: Session 100036 created
9/12/13 3:48:20.000 PM kernel[0]: Sandbox: com.apple.qtkits(622) deny file-read-data /Users/galen/Library/InputManagers
9/12/13 3:48:20.000 PM kernel[0]: Sandbox: com.apple.qtkits(622) deny file-read-data /Users/galen/Library/InputManagers
9/12/13 3:48:34.498 PM _coreaudiod[628]: audit warning: soft /var/audit
9/12/13 3:48:34.499 PM _coreaudiod[629]: audit warning: allsoft
9/12/13 3:48:34.500 PM _coreaudiod[630]: audit warning: closefile /var/audit/20130912204751.20130912204834
9/12/13 3:48:51.834 PM coreaudiod[166]: Enabled automatic stack shots because audio IO is inactive
9/12/13 3:48:51.877 PM coreaudiod[166]: Disabled automatic stack shots because audio IO is active
9/12/13 3:48:52.083 PM iStopMotion[611]: objc[611]: Class TSSandboxPrefs is implemented in both /Library/Frameworks/TSLicense.framework/Versions/A/TSLicense and /Library/QuickTime/Flip4Mac WMV Import.component/Contents/MacOS/Flip4Mac WMV Import. One of the two will be used. Which one is undefined.
9/12/13 3:48:52.095 PM iStopMotion[611]: objc[611]: Class TSSandboxPrefs is implemented in both /Library/Frameworks/TSLicense.framework/Versions/A/TSLicense and /Library/QuickTime/Flip4Mac WMV Advanced.component/Contents/MacOS/Flip4Mac WMV Advanced. One of the two will be used. Which one is undefined.
9/12/13 3:49:32.243 PM com.apple.qtkitserver[622]: objc[622]: Class TSSandboxPrefs is implemented in both /Library/Frameworks/TSLicense.framework/Versions/A/TSLicense and /Library/QuickTime/Flip4Mac WMV Import.component/Contents/MacOS/Flip4Mac WMV Import. One of the two will be used. Which one is undefined.
9/12/13 3:49:32.311 PM com.apple.qtkitserver[622]: objc[622]: Class TSSandboxPrefs is implemented in both /Library/Frameworks/TSLicense.framework/Versions/A/TSLicense and /Library/QuickTime/Flip4Mac WMV Advanced.component/Contents/MacOS/Flip4Mac WMV Advanced. One of the two will be used. Which one is undefined.
9/12/13 3:49:33.247 PM coreaudiod[166]: Enabled automatic stack shots because audio IO is inactive

I experimented with my old MacBook Pro, running version 2.8.4 of the program. The MBP of course has an internal mic, and I also tried a different USB mic which I can confirm works by checking the Sound System Preferences.

Regardless of the input device you have selected in the Sound System Prefs, iStopMotion always listens to the internal mic only. I know this because I can block the internal mic with my hand to keep it from working. When the input is set to the USB mic, but I block the internal mic, the spoken “capture” command fails to work. When I take my hand away, it does work.

But a Mac Pro has no internal mic, and that’s where I need to use the program.

Further experimentation:

I don’t have a mic that plugs into the Line In port. So I recorded a voice memo of myself saying “Capture” on my iPhone, and patched it into the back of the Mac Pro. It works. So I figure getting a simple “Line In” type of microphone will work too. But two USB mics have failed to work on the Mac Pro.

However, the “Line In” technique doesn’t work on my MacBook Pro. It seems to always listen to the internal mic, regardless of the Sound Input System Prefs.

I looked through the MacOS-X API we are using for Speech Recognition and it don’t let us select the audio device by the application. I assume that you have to setup the audio device in the “Dictation & Speech” preference pane of MacOS-X. Please can you try to setup dictation once, only to check which device is setup on your computer and switch it, if necessary to your USB microphone?

  1. On Mac OS-X 10.8+ select the apples-Menu “System Preferences…” menu item, you will get a window with all the System Preferences.
  2. Click on the “Dictation & Speech” icon to open the preferences for it.
  3. Select the “Dictation” tap.
  4. Check the audio input device with the popup menu below the microphone on the left.
  5. Select your USB audio device and close the Preferences with the red dot at the top left of the window.
  6. Restart iStopMotion and try the Speech function again.