Zenith
Zenith

Reputation: 1205

Apple SpeechRecognition and Dictation take more than 50% CPU

I have a mac of the below configuration

MacBook Pro (Retina, 15-inch, Mid 2015)
OS: macOS Catalina
CPU: 2.5 GHz Quad-Core Intel Core i7
Memory: 16 GB 1600 MHz DDR3
Graphics: Intel Iris Pro 1536 MB

After updating my OS from Siera to Catalina. The apple dictation application and speech recognition process(com.apple.SpeechRecognitionCore.speechrecognitiond) starts during start of laptop and I am unable to kill or stop those application and process. I killed those process but those starts automatically again and again.

I also off the Dictation from preference and restart laptop, thats also not work for me. :(

Most dangerously those processes take more than 50% of my CPU and give me bad experience using mac.

I am exhausted. What should I do now?

Upvotes: 3

Views: 4268

Answers (2)

Jason Phillips
Jason Phillips

Reputation: 85

This script disables Siri, Keyboard Dictation, Voice Control, and Kills the com.apple.SpeechRecognitionCore.speechrecognitiond and com.apple.SpeechRecognitionCore.brokerd daemons

You do have to click the "Turn Off button within 2 seconds after it disables Siri because I have not yet figured out how to have applescript click it automatically.

-- TURN OFF SIRI
tell application "System Preferences"
    activate
    set current pane to pane "com.apple.preference.speech"
end tell

delay 0.5
tell application "System Events"
    tell process "System Preferences"
        -- click checkbox "Enable Ask Siri" of window "Siri"

        if value of checkbox "Enable Ask Siri" of window "Siri" is 1 then
            click checkbox "Enable Ask Siri" of window "Siri"
        end if

    end tell
    -- need to click the Enable Button
end tell

delay 5

-- TURN OFF KEYBOARD DICTATION
tell application "System Preferences"
    reveal anchor "Dictation" of pane id "com.apple.preference.keyboard"
    -- activate
end tell
delay 1
tell application "System Events" to tell radio button "Dictation" of tab group 1 of window "Keyboard" of application process "System Preferences" of application "System Events" to if exists then click
tell application "System Events" to tell radio button "Off" of radio group 1 of tab group 1 of window "Keyboard" of application process "System Preferences" of application "System Events" to if exists then click

delay 0.5
tell application "System Preferences"
    reveal anchor "Dictation" of pane id "com.apple.preference.universalaccess"
    -- activate
end tell

delay 3

-- DISABLE VOICE CONTROL
tell application "System Events"
    tell process "System Preferences"
        if value of checkbox "Enable Voice Control" of group 1 of window "Accessibility" is 1 then
            click checkbox "Enable Voice Control" of group 1 of window "Accessibility"
        end if


        --click checkbox "Enable Voice Control" of group 1 of window "Accessibility"
    end tell
end tell

-- KILL SpeechRecognitionCore Deamon
do shell script "killall -9 com.apple.SpeechRecognitionCore.speechrecognitiond"
do shell script "killall -9 com.apple.SpeechRecognitionCore.brokerd"

Upvotes: 1

Caltain
Caltain

Reputation: 106

com.apple.SpeechRecognitionCore.speechrecognitiond is the daemon that turns human speech into something the computer can work with, then matches the speech to the words that fit best. As far as I can tell, it gets started and kept running to support three different OS X features: Voice Control, Dictation, and Siri.

Voice Control is a resource hog, just by itself, but if you are not actually dictating with Dictation or actively using Voice Control or Siri, that process should not be using that much of your CPU, and certainly shouldn't be slowing your MBP to the point that you are unhappy with the performance. Typically, this sort of resource hogging happens when there is an actual code bug, but it can happen if the system doesn't get rebooted often enough. When daemons run for long periods, errors can creep in that are not the result of a flaw in the code. Rather, they are usually the result of read/write errors or storage corruption as the code and data get paged back and forth between memory/disk and the CPU itself. Eventually, the errors add up and either cause a runaway process or the process crashes.

I recommend that most people make a point of boot cycling the system at least once a week via -Restart... or -Shutdown. That triggers the housekeeping routines that clear all of the system caches that are prone to causing problems.

It is possible to clear up this particular issue without actually rebooting with the following process:

  1. Disable Voice Control: ->System Preferences->Accessibility->Voice Control, uncheck "Enable Voice Control."
  2. Disable Dictation: ->System Preferences->Keyboard->Dictation->Dictation:->Off
  3. Disable Siri: ->System Preferences->Siri, uncheck "Enable Ask Siri."
  4. Force Quit the speech recognition daemon: Launch Activity Monitor and select com.apple.SpeechRecognitionCore.speechrecognition.d, then click the "x" button and click the "Force Quit" button in the dialog that pops up.

If you want to, you can now re-enable Siri and/or Dictation without taking any significant performance hit, as those features only load the speech recognition daemon when you using the feature. Voice Control is going to load the deamon and keep it running all the time, though. So, only re-enable Voice Control if you actually use it, because you will have some loss of performance. Also, the daemon should behave properly and die shortly after you toggle Voice Control off again.

Hope this gets you running like you want, helps you recognize when things are not working properly, and lets you make an informed decision about using Voice Control and the other speech recognition dependent features of Catalina.

Cheers!

Upvotes: 9

Related Questions