Apple SpeechRecognition 和 Dictation 占用超过 50% CPU

Apple SpeechRecognition and Dictation take more than 50% CPU

我有一个mac配置如下

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

将我的 OS 从 Siera 更新到 Catalina 之后。苹果听写应用程序和语音识别进程(com.apple.SpeechRecognitionCore.speechrecognitiond)在笔记本电脑启动时启动,我无法终止或停止这些应用程序和进程。 我杀死了那些进程,但那些进程一次又一次地自动启动。

我也关闭了偏好的听写并重新启动笔记本电脑,这对我来说也不起作用。 :(

最危险的是,这些进程占用了我 CPU 的 50% 以上,给我带来了糟糕的使用体验 mac。

我累坏了。 我现在该怎么办?

com.apple.SpeechRecognitionCore.speechrecognitiond 是将人类语音转换为计算机可以使用的东西的守护程序,然后将语音与最适合的单词匹配。据我所知,它启动并保持 运行 支持三种不同的 OS X 功能:语音控制、听写和 Siri。

语音控制本身就是一个资源消耗大户,但如果您实际上并没有使用听写或积极使用语音控制或 Siri,那么该过程不应该使用那么多 CPU,并且当然不应该将您的 MBP 减慢到您对性能不满意的程度。通常,这种资源占用会在存在实际代码错误时发生,但如果系统没有足够频繁地重新启动,也会发生这种情况。当守护进程 运行 长时间运行时,可能会出现错误,而这并不是代码缺陷造成的。相反,它们通常是 read/write 错误或存储损坏的结果,因为代码和数据在 memory/disk 和 CPU 本身之间来回分页。最终,错误累积起来,要么导致 运行away 进程,要么进程崩溃。

我建议大多数人每周至少通过 -重启... 或 -关机引导系统循环一次。这会触发内务处理例程,清除所有容易导致问题的系统缓存。

可以通过以下过程在不实际重新启动的情况下解决这个特定问题:

  1. 禁用语音控制:->系统偏好设置->辅助功能->语音控制,取消选中 "Enable Voice Control."
  2. 禁用听写:->系统偏好设置->键盘->听写->听写:->关闭
  3. 禁用 Siri:->系统偏好设置->Siri,取消选中 "Enable Ask Siri."
  4. 强制退出语音识别守护进程:启动Activity监听和selectcom.apple.SpeechRecognitionCore.speechrecognition.d,然后点击"x"按钮,点击"Force Quit"按钮弹出的对话框。

如果您愿意,现在可以重新启用 Siri and/or 听写而不会对性能造成任何重大影响,因为这些功能只会在您使用该功能时加载语音识别守护进程。不过,语音控制将加载守护程序并一直保持 运行ning。因此,只有在您实际使用语音控制时才重新启用它,因为您会损失一些性能。此外,守护程序应该正常运行,并在您再次关闭语音控制后不久停止运行。

希望这能让您 运行 随心所欲,帮助您识别何时工作不正常,并让您就使用语音控制和 Catalina 的其他语音识别相关功能做出明智的决定。

干杯!

此脚本禁用 Siri、键盘听写、语音控制,并杀死 com.apple.SpeechRecognitionCore.speechrecognitiond 和 com.apple.SpeechRecognitionCore.brokerd 守护程序

您必须在禁用 Siri 后的 2 秒内单击“关闭”按钮,因为我还没有弄清楚如何让 applescript 自动单击它。

-- 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"