RaspOVOS Troubleshooting¶
In a nutshell
raspOVOS is the ready-made, actively maintained OVOS image for the Raspberry Pi mini-computer, and this page is a fix-it guide for the common things that go wrong on those devices: weak power supplies, no sound, a wake word that won't trigger, or wrong speech-to-text results. It walks through hands-on commands you type into a terminal to diagnose and correct each problem. See the Glossary for unfamiliar terms.
raspOVOS-specific commands
This guide applies to raspOVOS and may assume some raspOVOS-exclusive utilities are available. If you are not using raspOVOS, some command line utilities will not be available.
Not sure where to start? Everyday Help covers the most common day-to-day problems in plain language before you dig into the technical steps below.
Undervoltage Detected Warning¶
If you see an undervoltage detected warning:
- Check your power adapter and cable.
- Ensure the adapter can supply enough current (e.g., 5A for Raspberry Pi 5).
- Replace long or thin cables with shorter, thicker ones for better power delivery.
System Boot Issues¶
If the device does not complete its boot sequence:
-
Ensure the power supply is stable and sufficient for your Raspberry Pi model.
-
If the OS boots but OVOS doesn't work:
- See if all OVOS services started up correctly with
ovos-statuscommand - Check log files in
~/.local/state/mycroft/for OVOS error messages.
- See if all OVOS services started up correctly with
-
Re-flash the image if necessary, ensuring all configuration options are set correctly.
OVOS Fails to Speak "I am Ready"¶
- Confirm the device has a working Internet connection. Otherwise OVOS won't consider itself ready
- The "I am Ready" announcement is spoken by the
ovos-skill-boot-finishedskill: if that skill is not installed or failed to load, the device can be fully working yet stay silent at boot. Check it appears in the loaded-skills list (see How to check installed skills below, whereovos-skill-boot-finished.openvoiceosshould be present). - For what "ready" actually means and how to probe it on headless or fleet deployments, see Knowing when the assistant is actually ready.
How to debug intent matching¶
To easily debug intent parsing, open a terminal and run ologs | grep intent. This shows you live logs related only to intent parsing.
Fix
ologs is a raspOVOS shortcut
ologs is a raspOVOS-only shell alias (tail -f over the log files, see raspOVOS commands). It is not the portable ovos-logs CLI. On a non-raspOVOS install use ovos-logs (or tail -f on the log files) instead.
It also excludes bus.log, so a messagebus problem never shows up in ologs output.
Tail that one on its own: tail -f ~/.local/state/mycroft/bus.log.
then in another terminal send commands with ovos-say-to "sentence to test" (or use your voice)
The Session pipeline line in the log below shows the default pipeline order:
ovos-stop-pipeline-plugin-high, ovos-converse-pipeline-plugin, ovos-ocp-pipeline-plugin-high,
ovos-padatious-pipeline-plugin-high, ovos-adapt-pipeline-plugin-high, ovos-m2v-pipeline-high,
ovos-ocp-pipeline-plugin-medium, ovos-fallback-pipeline-plugin-high,
ovos-stop-pipeline-plugin-medium, ovos-padatious-pipeline-plugin-medium,
ovos-adapt-pipeline-plugin-medium,
ovos-fallback-pipeline-plugin-medium, ovos-fallback-pipeline-plugin-low
(ovos) ovos@raspOVOS:~ $ ologs | grep intent
2025-01-23 16:29:54.299 - skills - ovos_core.intent_services:handle_utterance:416 - INFO - common_qa match: IntentHandlerMatch(match_type='question:action.ovos-skill-wikipedia.openvoiceos', match_data={'phrase': 'Who is Ada Lovelace', 'skill_id': 'ovos-skill-wikipedia.openvoiceos', 'answer': "Ada Lovelace was a mathematician known for her work on Charles Babbage's Analytical Engine.", 'callback_data': {'answer': "Ada Lovelace was a mathematician known for her work on Charles Babbage's Analytical Engine."}, 'conf': 0.6}, skill_id='ovos-skill-wikipedia.openvoiceos', utterance='Who is Ada Lovelace', updated_session=None)
2025-01-23 16:29:54.300 - skills - ovos_core.intent_services:handle_utterance:436 - DEBUG - intent matching took: 1.5732948780059814
2025-01-23 16:34:07.672 - skills - ovos_core.intent_services:handle_utterance:399 - INFO - Parsing utterance: ['what time is it']
2025-01-23 16:34:07.675 - skills - ovos_core.intent_services:get_pipeline:234 - DEBUG - Session pipeline: ['stop_high', 'converse', 'ocp_high', 'padatious_high', 'adapt_high', 'ocp_medium', 'fallback_high', 'stop_medium', 'adapt_medium', 'adapt_low', 'common_qa', 'fallback_medium', 'fallback_low']
2025-01-23 16:34:07.678 - skills - ovos_core.intent_services:handle_utterance:430 - DEBUG - no match from <bound method StopService.match_high of <ovos_core.intent_services.stop_service.StopService object at 0x7fff2b036310>>
2025-01-23 16:34:07.686 - skills - ovos_core.intent_services:handle_utterance:430 - DEBUG - no match from <bound method ConverseService.match of <ovos_core.intent_services.converse_service.ConverseService object at 0x7fff7159ae50>>
2025-01-23 16:34:07.691 - skills - ovos_core.intent_services:handle_utterance:430 - DEBUG - no match from <bound method OCPPipelineMatcher.match_high of <ocp_pipeline.opm.OCPPipelineMatcher object at 0x7fff26ac3910>>
2025-01-23 16:34:07.696 - skills - ovos_core.intent_services:handle_utterance:416 - INFO - padatious_high match: IntentHandlerMatch(match_type='ovos-skill-date-time.openvoiceos:what.time.is.it.intent', match_data={}, skill_id='ovos-skill-date-time.openvoiceos', utterance='what time is it', updated_session=None)
2025-01-23 16:34:07.698 - skills - ovos_core.intent_services:handle_utterance:436 - DEBUG - intent matching took: 0.022924184799194336
How to check installed skills¶
Use the ls-skills command to list every installed skill.
Fix
(ovos) ovos@raspOVOS:~ $ ls-skills
[INFO] Listing installed skills for OpenVoiceOS...
[WARNING] Scanning for installed skills. This may take a few moments, depending on the number of installed skills...
The following skills are installed:
['ovos-skill-weather.openvoiceos',
'ovos-skill-dictation.openvoiceos',
'ovos-skill-parrot.openvoiceos',
'ovos-skill-speedtest.openvoiceos',
'ovos-skill-ip.openvoiceos',
'skill-ovos-spelling.openvoiceos',
'ovos-skill-iss-location.openvoiceos',
'ovos-skill-audio-recording.openvoiceos',
'ovos-skill-wordnet.openvoiceos',
'ovos-skill-days-in-history.openvoiceos',
'ovos-skill-confucius-quotes.openvoiceos',
'skill-ovos-fallback-chatgpt.openvoiceos',
'ovos-skill-alerts.openvoiceos',
'ovos-skill-local-media.openvoiceos',
'ovos-skill-volume.openvoiceos',
'ovos-skill-wikihow.openvoiceos',
'ovos-skill-personal.openvoiceos',
'ovos-skill-number-facts.openvoiceos',
'ovos-skill-hello-world.openvoiceos',
'ovos-skill-moviemaster.openvoiceos',
'ovos-skill-date-time.openvoiceos',
'ovos-skill-fallback-unknown.openvoiceos',
'ovos-skill-pyradios.openvoiceos',
'ovos-skill-icanhazdadjokes.openvoiceos',
'ovos-skill-cmd.openvoiceos',
'ovos-skill-spotify.openvoiceos',
'skill-ovos-randomness.openvoiceos',
'ovos-skill-naptime.openvoiceos',
'ovos-skill-wikipedia.openvoiceos',
'ovos-skill-boot-finished.openvoiceos',
'ovos-skill-camera.openvoiceos',
'ovos-skill-ddg.openvoiceos',
'ovos-skill-laugh.openvoiceos',
'skill-ovos-somafm.openvoiceos',
'ovos-skill-news.openvoiceos',
'ovos-skill-wolfie.openvoiceos',
'ovos-skill-example-quotes.openvoiceos']
[SUCCESS] Skill listing completed.
How to check available intents¶
Skills can optionally provide metadata, if they do instructions will be available under ovos-commands.
Fix
(ovos) ovos@raspOVOS:~ $ ovos-commands
##########################
OpenVoiceOS - Skills help
##########################
Scanning skills...
Found 37 installed skills
Skill ids:
0) - ovos-skill-weather.openvoiceos
1) - ovos-skill-dictation.openvoiceos
2) - ovos-skill-parrot.openvoiceos
3) - ovos-skill-speedtest.openvoiceos
4) - ovos-skill-ip.openvoiceos
5) - skill-ovos-spelling.openvoiceos
6) - ovos-skill-iss-location.openvoiceos
7) - ovos-skill-audio-recording.openvoiceos
8) - ovos-skill-wordnet.openvoiceos
9) - ovos-skill-days-in-history.openvoiceos
10) - ovos-skill-confucius-quotes.openvoiceos
11) - skill-ovos-fallback-chatgpt.openvoiceos
12) - ovos-skill-alerts.openvoiceos
13) - ovos-skill-local-media.openvoiceos
14) - ovos-skill-volume.openvoiceos
15) - ovos-skill-wikihow.openvoiceos
16) - ovos-skill-personal.openvoiceos
17) - ovos-skill-number-facts.openvoiceos
18) - ovos-skill-hello-world.openvoiceos
19) - ovos-skill-moviemaster.openvoiceos
20) - ovos-skill-date-time.openvoiceos
21) - ovos-skill-fallback-unknown.openvoiceos
22) - ovos-skill-pyradios.openvoiceos
23) - ovos-skill-icanhazdadjokes.openvoiceos
24) - ovos-skill-cmd.openvoiceos
25) - ovos-skill-spotify.openvoiceos
26) - skill-ovos-randomness.openvoiceos
27) - ovos-skill-naptime.openvoiceos
28) - ovos-skill-wikipedia.openvoiceos
29) - ovos-skill-boot-finished.openvoiceos
30) - ovos-skill-camera.openvoiceos
31) - ovos-skill-ddg.openvoiceos
32) - ovos-skill-laugh.openvoiceos
33) - skill-ovos-somafm.openvoiceos
34) - ovos-skill-news.openvoiceos
35) - ovos-skill-wolfie.openvoiceos
36) - ovos-skill-example-quotes.openvoiceos
Select skill number: 36
Skill name: ovos-skill-example-quotes.openvoiceos
Description: A random quote of the day
Usage examples:
- Give me a quote of the day
- Say something inspiring
- Tell me a quote
How to remove all skills¶
If you want to revert OVOS to a blank state you can use ovos-reset-brain to remove ALL skills
Full ovos-reset-brain transcript
(ovos) ovos@raspOVOS:~ $ ovos-reset-brain
[INFO] Starting OpenVoiceOS skill uninstallation process...
WARNING: This will uninstall all installed skills. Do you want to continue? (y/n): y
Using Python 3.11.2 environment at: .venvs/ovos
[INFO] The following skills will be uninstalled:
- ovos-skill-alerts
- ovos-skill-audio-recording
- ovos-skill-boot-finished
- ovos-skill-camera
- ovos-skill-cmd
- ovos-skill-confucius-quotes
- ovos-skill-date-time
- ovos-skill-days-in-history
- ovos-skill-dictation
- ovos-skill-fallback-unknown
- ovos-skill-example-quotes
- ovos-skill-hello-world
- ovos-skill-icanhazdadjokes
- ovos-skill-ip
- ovos-skill-iss-location
- ovos-skill-laugh
- ovos-skill-local-media
- ovos-skill-moviemaster
- ovos-skill-naptime
- ovos-skill-number-facts
- ovos-skill-parrot
- ovos-skill-personal
- ovos-skill-pyradios
- ovos-skill-randomness
- ovos-skill-somafm
- ovos-skill-speedtest
- ovos-skill-spelling
- ovos-skill-spotify
- ovos-skill-volume
- ovos-skill-weather
- ovos-skill-wikihow
- ovos-skill-wikipedia
- ovos-skill-ddg
- ovos-skill-news
- skill-ovos-fallback-chatgpt
- ovos-skill-wolfie
- ovos-skill-wordnet
[INFO] Uninstalling skills...
Using Python 3.11.2 environment at: .venvs/ovos
Uninstalled 37 packages in 513ms
- ovos-skill-alerts==0.1.28
- ovos-skill-audio-recording==0.2.7
- ovos-skill-boot-finished==0.5.0
- ovos-skill-camera==1.0.4
- ovos-skill-cmd==0.2.11
- ovos-skill-confucius-quotes==0.2.0
- ovos-skill-date-time==1.1.5
- ovos-skill-days-in-history==0.3.11
- ovos-skill-dictation==0.2.21
- ovos-skill-fallback-unknown==0.1.9
- ovos-skill-example-quotes==0.0.1
- ovos-skill-hello-world==0.2.1
- ovos-skill-icanhazdadjokes==0.3.7
- ovos-skill-ip==0.2.8
- ovos-skill-iss-location==0.2.16
- ovos-skill-laugh==1.0.5
- ovos-skill-local-media==0.2.12
- ovos-skill-moviemaster==0.0.12
- ovos-skill-naptime==0.3.15
- ovos-skill-number-facts==0.1.12
- ovos-skill-parrot==0.1.25
- ovos-skill-personal==0.1.19
- ovos-skill-pyradios==0.1.5
- ovos-skill-randomness==1.0.1
- ovos-skill-somafm==0.1.5
- ovos-skill-speedtest==0.3.6
- ovos-skill-spelling==0.2.6
- ovos-skill-spotify==0.1.10
- ovos-skill-volume==0.1.16
- ovos-skill-weather==1.0.6
- ovos-skill-wikihow==0.3.3
- ovos-skill-wikipedia==0.8.13
- ovos-skill-ddg==0.3.7
- ovos-skill-news==0.4.6
- skill-ovos-fallback-chatgpt==0.1.13
- ovos-skill-wolfie==0.5.8
- ovos-skill-wordnet==0.2.6
[SUCCESS] All skills have been uninstalled successfully.
[WARNING] Note: This operation only deletes the skills. Configuration files and pipeline plugins (which still influence intent matching) are NOT affected by this action.
Wake-word Issues¶
Wake-word detection can misfire or fail to trigger depending on your microphone, the wake word you chose, or the plugin in use.
Fix
Wake-word detection in raspOVOS offers several options, each with its advantages and limitations. Understanding these can help resolve potential issues and improve performance.
By default, raspOVOS uses the precise-onnx engine with the wake word "hey mycroft"
(with precise-lite configured only as a fallback when precise-onnx is not installed).
The underlying model was trained by MycroftAI for their Mark2 device. However, there are
a few things to consider:
-
Microphone Compatibility: The performance of precise models can be impacted if the specific properties of your microphone (e.g., sensitivity, frequency response) do not match the data used to train the model. While the default
precise-litemodel was trained with a balanced dataset from a variety of Mycroft users, there is no guarantee it will work optimally with your microphone. -
Speaker Demographics: Precise models, including
precise-lite, are often trained with datasets predominantly featuring adult male voices. As a result, the model may perform poorly with voices that are outside this demographic, such as children's or women's voices. This is a common issue also seen in Speech-to-Text (STT) models.
Custom Models¶
If the default model is not working well for you, train your own — but not a Precise
model: the Precise training tooling is legacy from a defunct upstream, and only the
ONNX exports of already-trained models live on. Train an
openWakeWord or
microWakeWord model instead; both train on
synthetic speech, so no recording campaign is needed. The ecosystem's own
WakeForge framework (prerelease, runs via
ovos-ww-plugin-wakeforge) trains a detector from a single typed phrase and is the
intended successor to the Precise path. Helpful resources:
Alternative Wake-word Plugin: Vosk¶
If you're looking for an alternative to the precise model, the Vosk wake-word plugin is another option.
One of the main advantages of using the Vosk Wake-word Plugin is that it does not require a training step.
Instead, it uses Kaldi with a limited language model, which means it can work out-of-the-box with certain wake words without needing to collect and train custom data.
The performance of Vosk may vary depending on the wake word you choose. Some wake words may work better than others, so it's essential to test and evaluate the plugin with your chosen word.
Some wake words are hard to trigger, especially if missing from the language model vocabulary
Tip
For example, hey mycroft is usually transcribed as hey microsoft.
example for "hey computer"
"listener": {
"wake_word": "hey_computer"
},
"hotwords": {
"hey_computer": {
"module": "ovos-ww-plugin-vosk",
"lang": "en",
"listen": true,
"debug": true,
"samples": ["hey computer", "a computer", "hey computed"],
"rule": "equals",
"full_vocab": false
}
}
lang- lang code for model, optional, will use global value if not set. only used to download modelsdebug- if true will print extra info, like the transcription contents, useful for adjusting "samples"rule- how to process the transcript for detectionscontains- if the transcript contains any of provided samplesequals- if the transcript exactly matches any of provided samplesstarts- if the transcript starts with any of provided samplesends- if the transcript ends with any of provided samplesfuzzy- fuzzy match transcript against samples
samples- list of samples to match the rules against, optional, by default uses keyword namefull_vocab- use the full language model vocabulary for transcriptions, if false (default) will run in keyword mode
Tip
"lang" does not need to match the main language. If there is no vosk model for your language, you can try faking it with similar sounding words from a different one.
Tips for Choosing a Good Wake Word¶
Picking a good wake word improves the accuracy and responsiveness of your system. Here are some tips for choosing a wake word that works well in various environments:
-
3 or 4 Syllables: Wake words that are 3 or 4 syllables long tend to perform better because they are more distinct and less likely to be confused with common words in everyday speech. For example:
- Bad Example: "Bob" (short, common name)
- Less Bad Example: "Computer" (common word)
- Good Example: "Ziggy" (uncommon)
- Better Example: "Hey Ziggy" (3 syllables, longer)
-
Uncommon Words: Choose a wake word that is not often used in regular conversation. This reduces the chance of false triggers when other words sound similar to your wake word. Unique and uncommon names, phrases, or combinations of sounds work best.
-
Clear Pronunciation: Make sure the wake word has a clear and easy-to-pronounce structure. Words with ambiguous or difficult-to-articulate syllables may cause detection issues, especially in noisy environments.
-
Avoid Overused Words: Stay away from wake words like "hey" or "hello," as they are often used in daily speech and can trigger false positives. Try combining a less common word with a familiar greeting for better results.
Audio Issues¶
Generic sound-card checks live in Troubleshooting → Prove the microphone and speaker work:
arecord -l/aplay -l, the record/playback test,alsamixer/amixerlevels, and PulseAudio vs PipeWire notes. Run those first on any raspOVOS box too. The checks below are raspOVOS-specific.
Fix
- Run Diagnostics script:
- raspOVOS includes a helper script
ovos-audio-diagnosticsthat will print basic info about your sound system
- raspOVOS includes a helper script
(ovos) ovos@raspOVOS:~ $ ovos-audio-diagnostics
===========================
raspOVOS Audio Diagnostics
===========================
# Detected sound server:
pipewire
# Available audio outputs:
36 - Built-in Audio Stereo [vol: 0.40]
45 - Built-in Audio Stereo [vol: 0.85]
46 - Built-in Audio Digital Stereo (HDMI) [vol: 0.40]
# Default audio output:
ID: 36
NAME: WM8731 HiFi wm8731-hifi-0
CARD NUMBER: 2
CARD NAME: snd_rpi_proto
- Check audio setup logs:
- During boot the audio setup generates a log file, saved to the
/tmpdirectory:/tmp/autosoundcard.log(for soundcard autoconfiguration)
==> /tmp/autosoundcard.log <==
Fri 17 Jan 11:42:46 WET 2025 - **** List of PLAYBACK Hardware Devices ****
card 0: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: vc4hdmi [vc4-hdmi], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: sndrpiproto [snd_rpi_proto], device 0: WM8731 HiFi wm8731-hifi-0 [WM8731 HiFi wm8731-hifi-0]
Subdevices: 0/1
Subdevice #0: subdevice #0
Fri 17 Jan 11:42:48 WET 2025 - Mark 1 soundcard detected by ovos-i2csound.
Fri 17 Jan 11:42:48 WET 2025 - Detected CARD_NUMBER for Mark 1 soundcard: 3
Fri 17 Jan 11:42:48 WET 2025 - Configuring ALSA default card
Fri 17 Jan 11:42:48 WET 2025 - Running as user, modifying ~/.asoundrc
Fri 17 Jan 11:42:48 WET 2025 - ALSA default card set to: 3
- Confirm available audio sinks:
- Run
wpctl statusto check the available outputs as seen bypipewire. - The default sinks will be marked with
*
- Run
- You can inspect a sink by its number with
wpctl inspect $SINK_ID
Full wpctl status / wpctl inspect transcript
(ovos) ovos@raspOVOS:~ $ wpctl status
PipeWire 'pipewire-0' [1.2.4, ovos@raspOVOS, cookie:3349583741]
└─ Clients:
33. WirePlumber [1.2.4, ovos@raspOVOS, pid:695]
34. WirePlumber [export] [1.2.4, ovos@raspOVOS, pid:695]
47. PipeWire ALSA [librespot] [1.2.4, ovos@raspOVOS, pid:702]
67. PipeWire ALSA [python3.11] [1.2.4, ovos@raspOVOS, pid:691]
75. PipeWire ALSA [python3.11] [1.2.4, ovos@raspOVOS, pid:699]
83. PipeWire ALSA [python3.11] [1.2.4, ovos@raspOVOS, pid:700]
84. wpctl [1.2.4, ovos@raspOVOS, pid:1710]
Audio
├─ Devices:
│ 42. Built-in Audio [alsa]
│ 43. Built-in Audio [alsa]
│ 44. Built-in Audio [alsa]
│
├─ Sinks:
│ * 36. Built-in Audio Stereo [vol: 0.40]
│ 45. Built-in Audio Stereo [vol: 0.85]
│ 46. Built-in Audio Digital Stereo (HDMI) [vol: 0.40]
│
├─ Sink endpoints:
│
├─ Sources:
│ * 37. Built-in Audio Stereo [vol: 1.00]
│
├─ Source endpoints:
│
└─ Streams:
48. PipeWire ALSA [librespot]
63. output_FL > WM8731 HiFi wm8731-hifi-0:playback_FL [active]
64. output_FR > WM8731 HiFi wm8731-hifi-0:playback_FR [active]
68. PipeWire ALSA [python3.11]
69. input_FL < WM8731 HiFi wm8731-hifi-0:capture_FL [active]
70. monitor_FL
71. input_FR < WM8731 HiFi wm8731-hifi-0:capture_FR [active]
72. monitor_FR
(ovos) ovos@raspOVOS:~ $ wpctl inspect 36
id 36, type PipeWire:Interface:Node
alsa.card = "2"
alsa.card_name = "snd_rpi_proto"
alsa.class = "generic"
alsa.device = "0"
alsa.driver_name = "snd_soc_rpi_proto"
alsa.id = "sndrpiproto"
alsa.long_card_name = "snd_rpi_proto"
alsa.name = "WM8731 HiFi wm8731-hifi-0"
alsa.resolution_bits = "16"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
...
Re-triggering auto-detection without a reboot¶
If the wrong output device got picked, or a HAT wasn't detected, you don't need to reboot to re-run detection. Two separate systemd services do it:
sudo systemctl restart autoconfigure_soundcard.service: re-picks the default output.sudo systemctl restart i2csound.service: re-detects an i2c sound HAT (Respeaker, Mark 2's SJ201, etc.).
These are the same services the boot-time helper scripts run automatically. Restarting them by hand re-runs the same detection logic without a full reboot.
raspOVOS also ships a handful of non-interactive /usr/libexec helper scripts, invoked by
systemd rather than typed at a prompt: ovos-i2csound and soundcard-autoconfigure (the
scripts behind the two services above), usb-autovolume, the ovos-systemd-* service
launchers, and ovos-reboot-signal/ovos-shutdown-signal (bus signal emitters for reboot and
shutdown). You won't normally run these directly, but their names are worth knowing when reading
ologs output during audio troubleshooting.
STT tips and tricks¶
Wrong or garbled transcriptions usually trace back to the audio itself, a plugin mismatch, or the listen sound leaking into the recording.
Fix
Saving Transcriptions¶
You can enable saving of recordings to file, this should be your first step to diagnose problems, is the audio intelligible? is it being cropped? too noisy? low volume?
Tip
Set "save_utterances": true in your listener config. Recordings will be saved to ~/.local/share/mycroft/listener/utterances.
If the recorded audio looks good to you, maybe you need to use a different STT plugin, maybe the one you are using does not like your microphone, or just isn't very good for your language
Wrong Transcriptions¶
If you consistently get specific words or utterances transcribed wrong, you can remedy around this to some extent by using the ovos-utterance-corrections-plugin
Tip
You can define replacements at word level in ~/.local/share/mycroft/word_corrections.json.
for example whisper STT often gets artist names wrong, this allows you to correct them
{
"Jimmy Hendricks": "Jimi Hendrix",
"Eric Klapptern": "Eric Clapton",
"Eric Klappton": "Eric Clapton"
}
Silence Removal¶
By default OVOS applies VAD (Voice Activity Detection) to crop silence from the audio sent to STT, this helps in performance and in accuracy (reduces hallucinations in plugins like FasterWhisper)
Depending on your microphone/VAD plugin, this might be removing too much audio
Tip
Set "remove_silence": false in your listener config. This will send the full audio recording to STT.
Listen Sound¶
does your listen sound contain speech? some users replace the "ding" sound with words such as "yes?"
In this case the listen sound will be sent to STT and might negatively affect the transcription
Tip
Set "instant_listen": false in your listener config. This will drop the listen sound audio from the STT audio buffer. You will need to wait for the listen sound to finish before speaking your command in this case.
Read next: Troubleshooting & Debugging · It's not behaving Related: RaspOVOS · Make it yours · Command-line Tools · Pipelines Overview