core: TTS fails after update to 0.116.0.dev20200928 / 0.115.4

The problem

I try to announce a tts message over my Home Mini, it isn’t cached it fails after updating to 0.116.0.dev20200928 with 0.116.0.dev20200927 this problem doesn’t exist.

Environment

  • Home Assistant Core release with the issue: 0.116.0.dev20200928
  • Last working Home Assistant Core release (if known): 0.116.0.dev20200927
  • Operating environment (OS/Container/Supervised/Core):
arch armv7l
dev true
docker true
hassio false
installation_type Home Assistant Container
os_name Linux
os_version 5.4.51-v7l+
python_version 3.8.5
timezone Europe/Berlin
version 0.116.0.dev20200928
virtualenv false

Problem-relevant configuration.yaml

tts:
  - platform: google_translate
    service_name: google_say
    language: 'de'

Traceback/Error logs

Logger: homeassistant.components.websocket_api.http.connection.2941559352
Source: components/tts/__init__.py:471
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 11:22:01 (2 occurrences)
Last logged: 11:23:05
Invalid MultiSpec data: TextFrame(encoding=<Encoding.UTF8: 3>, text=['de'])

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/mutagen/easyid3.py", line 124, in setter
    frame = id3[frameid]
  File "/usr/local/lib/python3.8/site-packages/mutagen/_util.py", line 537, in __getitem__
    return self.__dict[key]
KeyError: 'TPE1'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 138, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1338, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1373, in _execute_service
    await handler.func(service_call)
  File "/usr/src/homeassistant/homeassistant/components/tts/__init__.py", line 168, in async_say_handle
    url = await tts.async_get_url(
  File "/usr/src/homeassistant/homeassistant/components/tts/__init__.py", line 341, in async_get_url
    filename = await self.async_get_tts_audio(
  File "/usr/src/homeassistant/homeassistant/components/tts/__init__.py", line 368, in async_get_tts_audio
    data = self.write_tags(filename, data, provider, message, language, options)
  File "/usr/src/homeassistant/homeassistant/components/tts/__init__.py", line 471, in write_tags
    tts_file["artist"] = ID3Text(encoding=3, text=artist)
  File "/usr/local/lib/python3.8/site-packages/mutagen/_file.py", line 74, in __setitem__
    self.tags[key] = value
  File "/usr/local/lib/python3.8/site-packages/mutagen/easyid3.py", line 222, in __setitem__
    return func(self.__id3, key, value)
  File "/usr/local/lib/python3.8/site-packages/mutagen/easyid3.py", line 126, in setter
    id3.add(mutagen.id3.Frames[frameid](encoding=3, text=value))
  File "/usr/local/lib/python3.8/site-packages/mutagen/id3/_frames.py", line 65, in __init__
    setattr(self, checker.name,
  File "/usr/local/lib/python3.8/site-packages/mutagen/id3/_frames.py", line 76, in __setattr__
    self._setattr(name, checker.validate(self, value))
  File "/usr/local/lib/python3.8/site-packages/mutagen/id3/_specs.py", line 533, in validate
    raise ValueError('Invalid MultiSpec data: %r' % value)
ValueError: Invalid MultiSpec data: TextFrame(encoding=<Encoding.UTF8: 3>, text=['de'])

Additional information

The configuration where not changed just the version update. Be sure to test with a message that is not cached

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 16
  • Comments: 22 (9 by maintainers)

Most upvoted comments

same issue on 0.115.4

same problem on 0.115.4 me too

same issue after upgrading to 115.4: “Invalid MultiSpec data: TextFrame(encoding=<Encoding.UTF8: 3>, text=[‘en’])”

same problem on 0.115.4 me too Invalid MultiSpec data: TextFrame(encoding=<Encoding.UTF8: 3>, text=[‘cs’])

Found a workaround for now: Google cloud with

encoding: linear16

runs without problems

I receive the mentioned Error: Invalid MultiSpec data: TextFrame(encoding=<Encoding.UTF8: 3>, text=['en']) also when I’m using the google_cloud tts integration and - as already mentioned - also for the google_translate integration.

tts:
  - platform: google_translate
    base_url: https://....:443

# tts:
#   - platform: google_cloud
#     base_url: https://...:443
#     key_file: googlecloud.json
#     language: de-DE
#     gender: female
#     voice: de-DE-Wavenet-C
key value
arch armv7l
chassis embedded
dev false
docker true
docker_version 19.03.11
hassio true
host_os HassOS 4.13
installation_type Home Assistant OS
os_name Linux
os_version 4.19.127-v7l
python_version 3.8.5
supervisor 245
timezone Europe/Zurich
version 0.115.4
virtualenv false

the exception seems to be the same for both tts integrations

2020-09-28 19:06:36 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection.2780351000] Invalid MultiSpec data: TextFrame(encoding=<Encoding.UTF8: 3>, text=['en-US'])
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/mutagen/easyid3.py", line 124, in setter
    frame = id3[frameid]
  File "/usr/local/lib/python3.8/site-packages/mutagen/_util.py", line 537, in __getitem__
    return self.__dict[key]
KeyError: 'TPE1'