{"record":{"id":"31016a8cc7c15585","repo":"home-assistant/core","slug":"stt-no-text-recognized","errorCode":"stt-no-text-recognized","errorMessage":"No text recognized","messagePattern":"No text recognized","errorType":"exception","errorClass":"SpeechToTextError","httpStatus":null,"severity":"warning","filePath":"homeassistant/components/assist_pipeline/pipeline.py","lineNumber":986,"sourceCode":"                message=\"Home Assistant Cloud authentication failed\",\n            ) from src_error\n        except Exception as src_error:\n            _LOGGER.exception(\"Unexpected error during speech-to-text\")\n            raise SpeechToTextError(\n                code=\"stt-stream-failed\",\n                message=\"Unexpected error during speech-to-text\",\n            ) from src_error\n\n        _LOGGER.debug(\"speech-to-text result %s\", result)\n\n        if result.result != stt.SpeechResultState.SUCCESS:\n            raise SpeechToTextError(\n                code=\"stt-stream-failed\",\n                message=\"speech-to-text failed\",\n            )\n\n        if not result.text:\n            raise SpeechToTextError(\n                code=\"stt-no-text-recognized\", message=\"No text recognized\"\n            )\n\n        self.process_event(\n            PipelineEvent(\n                PipelineEventType.STT_END,\n                {\n                    \"stt_output\": {\n                        \"text\": result.text,\n                    }\n                },\n            )\n        )\n\n        return result.text\n\n    async def _speech_to_text_stream(\n        self,","sourceCodeStart":968,"sourceCodeEnd":1004,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/assist_pipeline/pipeline.py#L968-L1004","documentation":"SpeechToTextError with code stt-no-text-recognized is raised when the STT provider returns SUCCESS but result.text is empty. The audio was processed fine, yet nothing intelligible was transcribed — typically silence, noise, or speech in a language the model does not understand.","triggerScenarios":"The user does not speak (or speaks too quietly) after the wake word, the microphone input is muted/noise, or the utterance is in a language unsupported by the STT model, so the provider returns an empty string.","commonSituations":"User says only the wake word and nothing else; microphone gain too low; wrong language configured (pipeline.stt_language vs spoken language); background music drowning out speech.","solutions":["Speak a clear voice command immediately after the wake word and check microphone volume/gain.","Ensure pipeline.stt_language (or the conversation language) matches the language actually spoken.","If it recurs, switch to a more accurate STT engine or a larger model.","Handle this case in the caller: respond with a 'I didn't catch that' TTS message instead of surfacing an error."],"exampleFix":"# before\nawait pipeline_job.run()  # raises on empty transcript\n\n# after\nfrom homeassistant.components.assist_pipeline.error import SpeechToTextError\ntry:\n    await pipeline_job.run()\nexcept SpeechToTextError as err:\n    if err.code == \"stt-no-text-recognized\":\n        _LOGGER.info(\"User did not speak after wake word\")\n    else:\n        raise","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"from homeassistant.components.assist_pipeline.error import SpeechToTextError\ntry:\n    await pipeline_job.run()\nexcept SpeechToTextError as err:\n    if err.code == \"stt-no-text-recognized\":\n        pass  # prompt the user to repeat; normal UX path","preventionTips":["Design voice UX to expect empty transcriptions (reprompt or stay idle).","Set the pipeline language to what users actually speak.","Check microphone gain on satellites reporting frequent empty results."],"tags":["assist-pipeline","stt","voice"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}