After successfully setting up HA VPE with Speech-to-Phrase, when attempting any voice command (specifically testing with ‘whats the time?’), my HA VPE device recognises the command but sits there with the light on the VPE spinning forever.
The Speech-to-phrase logs show it attempts to train rhasspy, but fails. Sentences.yaml is built as it mentioned and looks ok (no obvious errors with its contents) but VPE never responds.
If I use Whisper, it does respond (all be it, slow as documented).
What am I doing wrong that results in the training failure?
HA details
- Installation method Home Assistant OS
- Core 2026.1.2
- Supervisor 2026.01.1
- Operating System 17.0
- Frontend 20260107.2
- RPI 4-64bit, 4GB
- Language: English
- Location: Australia
Log
2026-01-21 11:20:12,387 - DEBUG:root: Getting exposed things from Home Assistant (ws://supervisor/core/websocket)
2026-01-21 11:20:12,602 - DEBUG:root: HA system language: en
2026-01-21 11:20:12,602 - DEBUG:root: HA pipeline language(s): {'en'}
2026-01-21 11:20:12,603 - DEBUG:root: Got 128 entities, 11 area(s), 0 floor(s), 0 extra sentence(s)
2026-01-21 11:20:12,611 - INFO:speech_to_phrase.train: Started training: en_US-rhasspy
2026-01-21 11:20:13,442 - DEBUG:speech_to_phrase.train: Wrote debug YAML to /share/speech-to-phrase/train/en_US-rhasspy/sentences.yaml
2026-01-21 11:20:13,549 - DEBUG:speech_to_phrase.hassil_fst: Total sentences: 24823
2026-01-21 11:20:13,549 - DEBUG:speech_to_phrase.hassil_fst: Sentence count by intent: {'SpeechToPhrase': 24823}
2026-01-21 11:20:15,061 - ERROR:root: Unexpected error while training en_US-rhasspy
Traceback (most recent call last):
File "/usr/src/.venv/lib/python3.11/site-packages/speech_to_phrase/__main__.py", line 181, in _train_model
await train(model, settings, hass_info.things, force_retrain=force_retrain)
File "/usr/src/.venv/lib/python3.11/site-packages/speech_to_phrase/train.py", line 71, in train
fst = _create_intents_fst(model, lexicon, intents)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/.venv/lib/python3.11/site-packages/speech_to_phrase/train.py", line 178, in _create_intents_fst
fst = intents_to_fst(
^^^^^^^^^^^^^^^
File "/usr/src/.venv/lib/python3.11/site-packages/speech_to_phrase/hassil_fst.py", line 866, in intents_to_fst
state = expression_to_fst(
^^^^^^^^^^^^^^^^^^
File "/usr/src/.venv/lib/python3.11/site-packages/speech_to_phrase/hassil_fst.py", line 517, in expression_to_fst
maybe_state = expression_to_fst(
^^^^^^^^^^^^^^^^^^
File "/usr/src/.venv/lib/python3.11/site-packages/speech_to_phrase/hassil_fst.py", line 614, in expression_to_fst
return expression_to_fst(
^^^^^^^^^^^^^^^^^^
File "/usr/src/.venv/lib/python3.11/site-packages/speech_to_phrase/hassil_fst.py", line 489, in expression_to_fst
maybe_state = expression_to_fst(
^^^^^^^^^^^^^^^^^^
File "/usr/src/.venv/lib/python3.11/site-packages/speech_to_phrase/hassil_fst.py", line 409, in expression_to_fst
maybe_state = expression_to_fst(
^^^^^^^^^^^^^^^^^^
File "/usr/src/.venv/lib/python3.11/site-packages/speech_to_phrase/hassil_fst.py", line 451, in expression_to_fst
sub_words = split_words(
^^^^^^^^^^^^
File "/usr/src/.venv/lib/python3.11/site-packages/speech_to_phrase/g2p.py", line 127, in split_words
number_word_str = number_engine.format_number(sub_word).text
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/.venv/lib/python3.11/site-packages/unicode_rbnf/engine.py", line 565, in format_number
raise NoRuleForNumberError(f"No rules were successful for {number}")
unicode_rbnf.engine.NoRuleForNumberError: No rules were successful for 93341222000000000000000000000000