Hi,
I’m trying to configure INMP441 microphone with EspHome. I’m using ESP32 Devkit v1 with this configuration:
esphome:
name: ha-microphone
friendly_name: HA-Microphone
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: ""
ota:
password: ""
wifi:
ssid: !secret wifi_ssid_espdev
password: !secret wifi_password_espdev
i2s_audio:
i2s_lrclk_pin: GPIO33 #ws
i2s_bclk_pin: GPIO19 #clk
microphone:
- platform: i2s_audio
i2s_din_pin: GPIO32 #sd
id: adc_mic
adc_type: external
pdm: false
voice_assistant:
microphone: adc_mic
binary_sensor:
- platform: gpio
name: "Voice"
pin:
number: GPIO0
inverted: True
on_press:
- voice_assistant.start:
on_release:
- voice_assistant.stop:
I have installed Whisper and Wyoming Protocol with this config and log:
model: tiny-int8
language: cs
beam_size: 1
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service whisper: starting
s6-rc: info: service whisper successfully started
s6-rc: info: service discovery: starting
WARNING:wyoming_faster_whisper.download:Model hashes do not match
WARNING:wyoming_faster_whisper.download:Expected: {'config.json': 'e5a2f85afc17f73960204cad2b002633', 'model.bin': '9674f22b7dee7b4d321a46f235ea6c7f', 'vocabulary.txt': 'c1120a13c94a8cbb132489655cdd1854'}
WARNING:wyoming_faster_whisper.download:Got: {'model.bin': '', 'config.json': '', 'vocabulary.txt': ''}
INFO:__main__:Downloading FasterWhisperModel.TINY_INT8 to /data
INFO:__main__:Ready
[14:22:54] INFO: Successfully send discovery information to Home Assistant.
s6-rc: info: service discovery successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
When I press button for voice record I get in EspHome this, but the pipeline is not connected:
12:45:59][D][binary_sensor:036]: 'Voice': Sending state ON
[12:45:59][D][voice_assistant:132]: Requesting start...
[12:45:59][D][voice_assistant:111]: Starting...
[12:46:02][D][binary_sensor:036]: 'Voice': Sending state OFF
[12:46:02][D][voice_assistant:144]: Signaling stop...
This is log from HomeAssistant:
Logger: homeassistant
Source: components/assist_pipeline/pipeline.py:728
First occurred: 10:55:45 (11 occurrences)
Last logged: 12:15:10
Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/esphome/voice_assistant.py", line 317, in run_pipeline
await async_pipeline_from_audio_stream(
File "/usr/src/homeassistant/homeassistant/components/assist_pipeline/__init__.py", line 79, in async_pipeline_from_audio_stream
await pipeline_input.validate()
File "/usr/src/homeassistant/homeassistant/components/assist_pipeline/pipeline.py", line 728, in validate
raise PipelineRunValidationError(
homeassistant.components.assist_pipeline.pipeline.PipelineRunValidationError: the pipeline does not support text-to-speech
Also from Homeassistant when I allow Text-to-speech with Google Translate
Logger: homeassistant
Source: components/assist_pipeline/pipeline.py:575
First occurred: 12:36:25 (1 occurrences)
Last logged: 12:36:25
Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/esphome/voice_assistant.py", line 317, in run_pipeline
await async_pipeline_from_audio_stream(
File "/usr/src/homeassistant/homeassistant/components/assist_pipeline/__init__.py", line 79, in async_pipeline_from_audio_stream
await pipeline_input.validate()
File "/usr/src/homeassistant/homeassistant/components/assist_pipeline/pipeline.py", line 747, in validate
await asyncio.gather(*prepare_tasks)
File "/usr/src/homeassistant/homeassistant/components/assist_pipeline/pipeline.py", line 575, in prepare_text_to_speech
raise TextToSpeechError(
homeassistant.components.assist_pipeline.error.TextToSpeechError: Pipeline error code=tts-not-supported, message=Text-to-speech engine google_translate does not support language cs or options {'audio_output': 'mp3'}
System version:
Home Assistant 2023.6.1
Supervisor 2023.06.1
Operating System 10.2
Frontend 20230608.0 - latest
I used actual stable EspHome and also tried development version with the same result.
Wiring between ESP32 and INMP441 is well, I also tried another one with ESP32-S3, but it has the same result.
Home Assistant is not using ssl secure for https, but I thought that this is only necessary for use microphone with Web Browser and isn’t necessary with HA and EspHome.
Assist is working if I write text in HA.
Do you have any idea where can be mistake?
Thank you for any point.