How do I change the voice and wake up word?

I’m working on making a J.A.R.V.I.S. to put inside an Iron Man helmet. How do I change the wake up word to JARVIS and the voice to British Male? I’ve tries using the device settings in the online dashboard, but that doesn’t work.

1 Like

pip install ovos-tts-plugin-mimic3-server
pip install ovos-ww-plugin-openWakeWord

~/.config/neon/neon.yaml

hotwords:
  hey_jarvis:
    module: ovos-ww-plugin-openwakeword
    active: true
    listen: true
  hey_neon:
    active: false
  hey_mycroft:
    active: false
tts:
  module: ovos-tts-plugin-mimic3-server
  ovos-tts-plugin-mimic3-server:
    voice: en_UK/apope_low

~/.config/neon/ngi_user_info.yml

speech:
  tts_language: en-uk
  tts_gender: male
  secondary_tts_gender: male
1 Like

shouldn’t that be:

~/.config/neon/neon.yaml

Good catch! I autocomplete a symlink so I don’t remember anymore. :slightly_smiling_face:

1 Like

This works for changing the WW to Jarvis, but on my Neon Mark 2, the voice is still the default female voice.

Have you restarted neon-audio? The only reason you’d still be getting a female voice is if it’s using the default fallback on the device, meaning for some reason ovos-tts-plugin-mimic3-server isn’t available. If you’ve restarted and it still isn’t working, would you please share the output of ~/logs/voice.log?

I did a reboot after the changes. Just did a reinstall attempt on the mimic3-server (in the neon venv) and get ‘Requirement already satisfied’ for the server and all of the dependencies. Here’s the voice.log:

2023-08-02 19:29:10.703 - voice - ovos_dinkum_listener.service:init:123 - INFO - Starting Voice Service
2023-08-02 19:29:10.707 - voice - ovos_dinkum_listener.service:_before_start:292 - INFO - Starting service…
2023-08-02 19:29:10.769 - voice - ovos_bus_client.session:reset_default_session:531 - INFO - New Default Session Start: f6405189-36d8-496b-9b64-037c8f198084
2023-08-02 19:29:11.569 - voice - ovos_dinkum_listener.service:_connect_to_bus:391 - INFO - Connected to Mycroft Core message bus
2023-08-02 19:29:13.620 - voice - neon_speech.stt:create:81 - INFO - Create STT with config: {‘module’: ‘google_cloud_streaming’, ‘fallback_module’: ‘ovos-stt-plugin-vosk’, ‘ovos-stt-plugin-server’: {‘url’: ‘https://stt.openvoiceos.com/stt’}, ‘ovos-stt-plugin-vosk’: {‘model’: ‘/home/neon/.local/share/neon/vosk-model-small-en-us-0.15’}, ‘lang’: ‘en-us’}
2023-08-02 19:29:25.913 - voice - neon_speech.stt:create:81 - INFO - Create STT with config: {‘module’: ‘ovos-stt-plugin-vosk’, ‘ovos-stt-plugin-vosk’: {‘model’: ‘/home/neon/.local/share/neon/vosk-model-small-en-us-0.15’, ‘lang’: ‘en-us’}}
2023-08-02 19:29:30.745 - voice - neon_utils.signal_utils:init_signal_handlers:107 - INFO - Signal Manager Available
2023-08-02 19:29:47.090 - voice - ovos_plugin_manager.ocp:load:54 - INFO - Loaded OCP plugin: ovos-ocp-m3u-plugin
2023-08-02 19:29:50.760 - voice - ovos_plugin_manager.ocp:load:54 - INFO - Loaded OCP plugin: ovos-ocp-rss-plugin
2023-08-02 19:29:54.382 - voice - ovos_plugin_manager.ocp:load:54 - INFO - Loaded OCP plugin: ovos-ocp-news-plugin
2023-08-02 19:29:58.180 - voice - ovos_plugin_manager.ocp:load:54 - INFO - Loaded OCP plugin: ovos-ocp-files-plugin
2023-08-02 19:30:03.798 - voice - neon_utils.signal_utils:init_signal_handlers:127 - INFO - Overrode mycroft.util.signal methods
2023-08-02 19:30:03.947 - voice - neon_speech.stt:create:81 - INFO - Create STT with config: {‘module’: ‘google_cloud_streaming’, ‘fallback_module’: ‘ovos-stt-plugin-vosk’, ‘ovos-stt-plugin-server’: {‘url’: ‘https://stt.openvoiceos.com/stt’}, ‘ovos-stt-plugin-vosk’: {‘model’: ‘/home/neon/.local/share/neon/vosk-model-small-en-us-0.15’, ‘lang’: ‘en-us’}}
2023-08-02 19:30:04.936 - voice - ovos_dinkum_listener.service:_before_start:292 - INFO - Starting service…
2023-08-02 19:30:06.224 - voice - ovos_dinkum_listener.service:_connect_to_bus:391 - INFO - Connected to Mycroft Core message bus
2023-08-02 19:30:06.386 - voice - ovos_dinkum_listener.voice_loop.hotwords:load_hotword_engines:108 - INFO - creating hotword engines
2023-08-02 19:30:06.401 - voice - ovos_dinkum_listener.voice_loop.hotwords:load_hotword_engines:180 - ERROR - Failed to load hotword: hey_mycroft
2023-08-02 19:30:06.403 - voice - ovos_dinkum_listener.voice_loop.hotwords:load_hotword_engines:180 - ERROR - Failed to load hotword: hey_neon
2023-08-02 19:30:06.442 - voice - ovos_plugin_manager.wakewords:load_module:165 - INFO - Loading “hey_jarvis” wake word via ovos-ww-plugin-openwakeword with config: {‘module’: ‘ovos-ww-plugin-openwakeword’, ‘active’: True, ‘listen’: True}
2023-08-02 19:30:13.894 - voice - ovos_plugin_manager.wakewords:load_module:172 - INFO - Loaded the Wake Word hey_jarvis with module ovos-ww-plugin-openwakeword
2023-08-02 19:30:16.149 - voice - ovos_dinkum_listener.voice_loop.hotwords:load_hotword_engines:158 - INFO - Loading hotword: hey_jarvis with engine: <ovos_ww_plugin_openwakeword.OwwHotwordPlugin object at 0x7f53638ad0>
2023-08-02 19:30:16.159 - voice - ovos_dinkum_listener.voice_loop.hotwords:load_hotword_engines:189 - WARNING - No wakeup words loaded
2023-08-02 19:30:16.176 - voice - ovos_dinkum_listener.voice_loop.hotwords:load_hotword_engines:191 - WARNING - No stop words loaded
2023-08-02 19:30:16.200 - voice - ovos_dinkum_listener.voice_loop.voice_loop:start:153 - INFO - Listening mode: wakeword
2023-08-02 19:30:16.266 - voice - neon_speech.service:wrapper:60 - INFO - Set Ready event
2023-08-02 19:30:16.288 - voice - ovos_dinkum_listener.service:run:267 - INFO - Service ready
2023-08-02 19:30:16.299 - voice - ovos_dinkum_listener.voice_loop.voice_loop:run:177 - INFO - Starting loop in mode: wakeword
2023-08-02 19:31:08.105 - voice - neon_speech.service:handle_internet_connected:404 - INFO - Internet Connected, Resetting STT Stream
2023-08-02 19:31:18.783 - voice - ovos_config.config:_on_file_change:308 - INFO - /home/neon/.config/neon/web_cache.json unchanged

And neon.yaml:

hotwords:
hey_jarvis:
module: ovos-ww-plugin-openwakeword
active: true
listen: true
hey_neon:
active:false
hey_mycroft:
active:false
tts:
module: ovos-tts-plugin-mimic3-server
ovos-tts-plugin-mimic3-server:
voice: en_UK/apope_low
skills:
blacklisted_skills:

  • skill-ovos-setup.openvoiceos
  • skill-messaging.neongeckocom
  • skill-custom_conversation.neongeckocom
  • skill-instructions.neongeckocom
  • skill-audio_record.neongeckocom
  • mycroft-wiki.mycroftai
  • mycroft-joke.mycroftai

ngi_user_info.yml:

user:
first_name: ‘’
middle_name: ‘’
last_name: ‘’
preferred_name: ‘’
full_name: ‘’
dob: YYYY/MM/DD
age: ‘’
email: ‘’
username: local
password: ‘’
picture: ‘’
about: ‘’
phone: ‘’
phone_verified: false
email_verified: false
brands:
ignored_brands: {}
favorite_brands: {}
specially_requested: {}
speech:
stt_language: en-us
alt_languages: []
tts_language: en-uk
tts_gender: male
neon_voice: ‘’
secondary_tts_language: ‘’
secondary_tts_gender: male
secondary_neon_voice: ‘’
speed_multiplier: 1.0
units:
time: 12
date: MDY
measure: imperial
location:
lat: 47.6475683
lng: -122.54602915532405
city: Bainbridge Island
state: Washington
country: United States
tz: America/Los_Angeles
utc: -8.0
response_mode:
speed_mode: quick
hesitation: false
limit_dialog: false
privacy:
save_audio: true
save_text: true

Sorry, it’s audio.log for TTS, I was mistaken. What’s the output of that?

cat audio.log
2023-08-03 07:48:23.204 - audio - ovos_bus_client.session:reset_default_session:531 - INFO - New Default Session Start: 2c28ba85-6f75-440f-8024-f0010ded0b97
2023-08-03 07:48:23.309 - audio - neon_utils.signal_utils:init_signal_handlers:107 - INFO - Signal Manager Available
2023-08-03 07:48:23.322 - audio - neon_utils.signal_utils:init_signal_handlers:127 - INFO - Overrode mycroft.util.signal methods
2023-08-03 07:48:23.661 - audio - neon_utils.signal_utils:init_signal_handlers:107 - INFO - Signal Manager Available
2023-08-03 07:48:23.663 - audio - neon_utils.signal_utils:init_signal_handlers:127 - INFO - Overrode mycroft.util.signal methods
2023-08-03 07:48:23.679 - audio - mycroft.audio.service:init:45 - INFO - Starting Audio Service
2023-08-03 07:48:24.467 - audio - mycroft.audio.service:_maybe_reload_tts:282 - INFO - (re)loading TTS engine
2023-08-03 07:48:37.919 - audio - ovos_utils.file_utils:resolve_resource_file:152 - WARNING - Deprecation version=0.1.0. Caller=ovos_plugin_manager.templates.tts:517. Expected a dict config and got None.
2023-08-03 07:48:38.438 - audio - ovos_plugin_manager.language:create:139 - INFO - Loaded the Language Detection plugin libretranslate_detection_plug
2023-08-03 07:48:38.874 - audio - ovos_plugin_manager.language:create:186 - INFO - Loaded the Language Translation plugin libretranslate_plug
2023-08-03 07:48:38.886 - audio - mycroft.audio.service:_maybe_reload_tts:297 - INFO - (re)loading fallback TTS engine
2023-08-03 07:48:39.209 - audio - ovos_utils.file_utils:resolve_resource_file:152 - WARNING - Deprecation version=0.1.0. Caller=ovos_plugin_manager.templates.tts:517. Expected a dict config and got None.
2023-08-03 07:48:39.378 - audio - neon_tts_plugin_coqui:_init_model:187 - INFO - Initializing model for: en
2023-08-03 07:48:44.742 - audio - ovos_plugin_manager.language:create:139 - INFO - Loaded the Language Detection plugin libretranslate_detection_plug
2023-08-03 07:48:45.117 - audio - ovos_plugin_manager.language:create:186 - INFO - Loaded the Language Translation plugin libretranslate_plug
2023-08-03 07:48:45.591 - audio - ovos_plugin_manager.audio:load_audio_service_plugins:84 - INFO - Loading audio service plugin: ovos_audio_simple
2023-08-03 07:48:45.598 - audio - ovos_plugin_manager.audio:load_audio_service_plugins:84 - INFO - Loading audio service plugin: ovos_common_play
2023-08-03 07:48:48.610 - audio - ovos_workshop.skills.mycroft_skill:call:67 - WARNING - skill_id should be a kwarg, please update OCP
2023-08-03 07:48:48.615 - audio - ovos_workshop.skills.mycroft_skill:call:81 - WARNING - skill initialized without bus!! this is legacy behaviour and requires you to call skill.bind(bus) or skill._startup(skill_id, bus)
bus will be required starting on ovos-core 0.1.0
2023-08-03 07:48:48.632 - audio - ovos_utils.gui:init:538 - WARNING - Deprecation version=0.1.0. Caller=ovos_plugin_common_play.ocp.gui:27. Expected a dict config and got None.
2023-08-03 07:48:50.879 - audio - ovos_workshop.skills.mycroft_skill:call:67 - WARNING - skill_id should be a kwarg, please update OCPMediaPlayer
2023-08-03 07:48:50.892 - audio - ovos_workshop.skills.mycroft_skill:call:81 - WARNING - skill initialized without bus!! this is legacy behaviour and requires you to call skill.bind(bus) or skill._startup(skill_id, bus)
bus will be required starting on ovos-core 0.1.0
2023-08-03 07:48:51.538 - audio - ovos_utils.events:init:209 - WARNING - Deprecation version=0.1.0. Caller=ovos_plugin_common_play.ocp.gui:48. name argument has been deprecated! use skill_id instead
2023-08-03 07:48:58.495 - audio - mycroft.audio.audioservice:load_services:78 - INFO - OCP - OVOS Common Play set as default backend
2023-08-03 07:49:03.674 - audio - ovos_config.config:_on_file_change:320 - INFO - Ignoring non-config file change: /home/neon/.config/neon/.ngi_user_info.tmp
2023-08-03 07:49:03.690 - audio - ovos_config.config:_on_file_change:320 - INFO - Ignoring non-config file change: /home/neon/.config/neon/ngi_user_info.yml
2023-08-03 07:50:10.006 - audio - ovos_plugin_common_play.ocp:register_ocp_intents:119 - INFO - OCP intents missing, registering for <ovos_plugin_common_play.ocp.OCP object at 0x7f66e3dfd0>
2023-08-03 07:50:11.754 - audio - ovos_config.config:_on_file_change:316 - INFO - /home/neon/.config/neon/web_cache.json unchanged
2023-08-03 07:53:14.747 - audio - mycroft.audio.service:execute_tts:309 - INFO - Speak: It is seven fifty three.
2023-08-03 07:53:14.864 - audio - neon_audio.tts.neon:get_requested_tts_languages:74 - INFO - Got profiles: [{‘user’: {‘first_name’: ‘’, ‘middle_name’: ‘’, ‘last_name’: ‘’, ‘preferred_name’: ‘’, ‘full_name’: ‘’, ‘dob’: ‘YYYY/MM/DD’, ‘age’: ‘’, ‘email’: ‘’, ‘username’: ‘local’, ‘password’: ‘’, ‘picture’: ‘’, ‘about’: ‘’, ‘phone’: ‘’, ‘phone_verified’: False, ‘email_verified’: False}, ‘brands’: {‘ignored_brands’: {}, ‘favorite_brands’: {}, ‘specially_requested’: {}}, ‘speech’: {‘stt_language’: ‘en-us’, ‘alt_languages’: [], ‘tts_language’: ‘en-uk’, ‘tts_gender’: ‘male’, ‘neon_voice’: ‘’, ‘secondary_tts_language’: ‘’, ‘secondary_tts_gender’: ‘male’, ‘secondary_neon_voice’: ‘’, ‘speed_multiplier’: 1.0}, ‘units’: {‘time’: 12, ‘date’: ‘MDY’, ‘measure’: ‘imperial’}, ‘location’: {‘lat’: 47.6475683, ‘lng’: -122.54602915532405, ‘city’: ‘Bainbridge Island’, ‘state’: ‘Washington’, ‘country’: ‘United States’, ‘tz’: ‘America/Los_Angeles’, ‘utc’: -8.0, ‘country_code’: ‘us’}, ‘response_mode’: {‘speed_mode’: ‘quick’, ‘hesitation’: False, ‘limit_dialog’: False}, ‘privacy’: {‘save_audio’: True, ‘save_text’: True}}]
2023-08-03 07:53:14.881 - audio - neon_audio.tts.neon:_get_tts:198 - INFO - Legacy Neon TTS signature found
2023-08-03 07:53:14.895 - audio - mycroft.audio.service:execute_tts:314 - ERROR - TTS synth failed! ‘NoneType’ object has no attribute ‘endswith’
Traceback (most recent call last):
File “/home/neon/venv/lib/python3.7/site-packages/mycroft/audio/service.py”, line 312, in execute_tts
self.tts.execute(utterance, ident, listen)
File “/home/neon/venv/lib/python3.7/site-packages/neon_utils/message_utils.py”, line 168, in wrapper
return function(*args, **kwargs)
File “/home/neon/venv/lib/python3.7/site-packages/neon_audio/tts/neon.py”, line 293, in execute
responses = self.get_multiple_tts(message, **kwargs)
File “/home/neon/venv/lib/python3.7/site-packages/neon_audio/tts/neon.py”, line 247, in get_multiple_tts
wav_file, phonemes = self._get_tts(tx_sentence, request, **kwargs)
File “/home/neon/venv/lib/python3.7/site-packages/neon_audio/tts/neon.py”, line 217, in _get_tts
return self.get_tts(sentence, **plugin_kwargs)
File “/home/neon/venv/lib/python3.7/site-packages/ovos_tts_plugin_mimic3_server/init.py”, line 114, in get_tts
voice = self._validate_args_combo(lang, voice, speaker)
File “/home/neon/venv/lib/python3.7/site-packages/ovos_tts_plugin_mimic3_server/init.py”, line 81, in _validate_args_combo
if speaker and not voice.endswith(f"#{speaker}“):
AttributeError: ‘NoneType’ object has no attribute ‘endswith’
2023-08-03 07:53:15.003 - audio - neon_audio.tts.neon:get_requested_tts_languages:74 - INFO - Got profiles: [{‘user’: {‘first_name’: ‘’, ‘middle_name’: ‘’, ‘last_name’: ‘’, ‘preferred_name’: ‘’, ‘full_name’: ‘’, ‘dob’: ‘YYYY/MM/DD’, ‘age’: ‘’, ‘email’: ‘’, ‘username’: ‘local’, ‘password’: ‘’, ‘picture’: ‘’, ‘about’: ‘’, ‘phone’: ‘’, ‘phone_verified’: False, ‘email_verified’: False}, ‘brands’: {‘ignored_brands’: {}, ‘favorite_brands’: {}, ‘specially_requested’: {}}, ‘speech’: {‘stt_language’: ‘en-us’, ‘alt_languages’: [], ‘tts_language’: ‘en-uk’, ‘tts_gender’: ‘male’, ‘neon_voice’: ‘’, ‘secondary_tts_language’: ‘’, ‘secondary_tts_gender’: ‘male’, ‘secondary_neon_voice’: ‘’, ‘speed_multiplier’: 1.0}, ‘units’: {‘time’: 12, ‘date’: ‘MDY’, ‘measure’: ‘imperial’}, ‘location’: {‘lat’: 47.6475683, ‘lng’: -122.54602915532405, ‘city’: ‘Bainbridge Island’, ‘state’: ‘Washington’, ‘country’: ‘United States’, ‘tz’: ‘America/Los_Angeles’, ‘utc’: -8.0, ‘country_code’: ‘us’}, ‘response_mode’: {‘speed_mode’: ‘quick’, ‘hesitation’: False, ‘limit_dialog’: False}, ‘privacy’: {‘save_audio’: True, ‘save_text’: True}}]
2023-08-03 07:53:15.034 - audio - neon_audio.tts.neon:_get_tts:198 - INFO - Legacy Neon TTS signature found
2023-08-03 07:53:25.957 - audio - neon_audio.tts.neon:_play:139 - INFO - Played 1691074393.4267087
2023-08-03 07:53:25.962 - audio - ovos_bus_client.session:update_history:424 - WARNING - Deprecation version=0.0.4. Caller=neon_audio.tts.neon:140. mycroft-bus-client has been deprecated, please update your imports to use ovos-bus-clientcat audio.log
2023-08-03 07:48:23.204 - audio - ovos_bus_client.session:reset_default_session:531 - INFO - New Default Session Start: 2c28ba85-6f75-440f-8024-f0010ded0b97
2023-08-03 07:48:23.309 - audio - neon_utils.signal_utils:init_signal_handlers:107 - INFO - Signal Manager Available
2023-08-03 07:48:23.322 - audio - neon_utils.signal_utils:init_signal_handlers:127 - INFO - Overrode mycroft.util.signal methods
2023-08-03 07:48:23.661 - audio - neon_utils.signal_utils:init_signal_handlers:107 - INFO - Signal Manager Available
2023-08-03 07:48:23.663 - audio - neon_utils.signal_utils:init_signal_handlers:127 - INFO - Overrode mycroft.util.signal methods
2023-08-03 07:48:23.679 - audio - mycroft.audio.service:init:45 - INFO - Starting Audio Service
2023-08-03 07:48:24.467 - audio - mycroft.audio.service:_maybe_reload_tts:282 - INFO - (re)loading TTS engine
2023-08-03 07:48:37.919 - audio - ovos_utils.file_utils:resolve_resource_file:152 - WARNING - Deprecation version=0.1.0. Caller=ovos_plugin_manager.templates.tts:517. Expected a dict config and got None.
2023-08-03 07:48:38.438 - audio - ovos_plugin_manager.language:create:139 - INFO - Loaded the Language Detection plugin libretranslate_detection_plug
2023-08-03 07:48:38.874 - audio - ovos_plugin_manager.language:create:186 - INFO - Loaded the Language Translation plugin libretranslate_plug
2023-08-03 07:48:38.886 - audio - mycroft.audio.service:_maybe_reload_tts:297 - INFO - (re)loading fallback TTS engine
2023-08-03 07:48:39.209 - audio - ovos_utils.file_utils:resolve_resource_file:152 - WARNING - Deprecation version=0.1.0. Caller=ovos_plugin_manager.templates.tts:517. Expected a dict config and got None.
2023-08-03 07:48:39.378 - audio - neon_tts_plugin_coqui:_init_model:187 - INFO - Initializing model for: en
2023-08-03 07:48:44.742 - audio - ovos_plugin_manager.language:create:139 - INFO - Loaded the Language Detection plugin libretranslate_detection_plug
2023-08-03 07:48:45.117 - audio - ovos_plugin_manager.language:create:186 - INFO - Loaded the Language Translation plugin libretranslate_plug
2023-08-03 07:48:45.591 - audio - ovos_plugin_manager.audio:load_audio_service_plugins:84 - INFO - Loading audio service plugin: ovos_audio_simple
2023-08-03 07:48:45.598 - audio - ovos_plugin_manager.audio:load_audio_service_plugins:84 - INFO - Loading audio service plugin: ovos_common_play
2023-08-03 07:48:48.610 - audio - ovos_workshop.skills.mycroft_skill:call:67 - WARNING - skill_id should be a kwarg, please update OCP
2023-08-03 07:48:48.615 - audio - ovos_workshop.skills.mycroft_skill:call:81 - WARNING - skill initialized without bus!! this is legacy behaviour and requires you to call skill.bind(bus) or skill._startup(skill_id, bus)
bus will be required starting on ovos-core 0.1.0
2023-08-03 07:48:48.632 - audio - ovos_utils.gui:init:538 - WARNING - Deprecation version=0.1.0. Caller=ovos_plugin_common_play.ocp.gui:27. Expected a dict config and got None.
2023-08-03 07:48:50.879 - audio - ovos_workshop.skills.mycroft_skill:call:67 - WARNING - skill_id should be a kwarg, please update OCPMediaPlayer
2023-08-03 07:48:50.892 - audio - ovos_workshop.skills.mycroft_skill:call:81 - WARNING - skill initialized without bus!! this is legacy behaviour and requires you to call skill.bind(bus) or skill._startup(skill_id, bus)
bus will be required starting on ovos-core 0.1.0
2023-08-03 07:48:51.538 - audio - ovos_utils.events:init:209 - WARNING - Deprecation version=0.1.0. Caller=ovos_plugin_common_play.ocp.gui:48. name argument has been deprecated! use skill_id instead
2023-08-03 07:48:58.495 - audio - mycroft.audio.audioservice:load_services:78 - INFO - OCP - OVOS Common Play set as default backend
2023-08-03 07:49:03.674 - audio - ovos_config.config:_on_file_change:320 - INFO - Ignoring non-config file change: /home/neon/.config/neon/.ngi_user_info.tmp
2023-08-03 07:49:03.690 - audio - ovos_config.config:_on_file_change:320 - INFO - Ignoring non-config file change: /home/neon/.config/neon/ngi_user_info.yml
2023-08-03 07:50:10.006 - audio - ovos_plugin_common_play.ocp:register_ocp_intents:119 - INFO - OCP intents missing, registering for <ovos_plugin_common_play.ocp.OCP object at 0x7f66e3dfd0>
2023-08-03 07:50:11.754 - audio - ovos_config.config:_on_file_change:316 - INFO - /home/neon/.config/neon/web_cache.json unchanged
2023-08-03 07:53:14.747 - audio - mycroft.audio.service:execute_tts:309 - INFO - Speak: It is seven fifty three.
2023-08-03 07:53:14.864 - audio - neon_audio.tts.neon:get_requested_tts_languages:74 - INFO - Got profiles: [{‘user’: {‘first_name’: ‘’, ‘middle_name’: ‘’, ‘last_name’: ‘’, ‘preferred_name’: ‘’, ‘full_name’: ‘’, ‘dob’: ‘YYYY/MM/DD’, ‘age’: ‘’, ‘email’: ‘’, ‘username’: ‘local’, ‘password’: ‘’, ‘picture’: ‘’, ‘about’: ‘’, ‘phone’: ‘’, ‘phone_verified’: False, ‘email_verified’: False}, ‘brands’: {‘ignored_brands’: {}, ‘favorite_brands’: {}, ‘specially_requested’: {}}, ‘speech’: {‘stt_language’: ‘en-us’, ‘alt_languages’: [], ‘tts_language’: ‘en-uk’, ‘tts_gender’: ‘male’, ‘neon_voice’: ‘’, ‘secondary_tts_language’: ‘’, ‘secondary_tts_gender’: ‘male’, ‘secondary_neon_voice’: ‘’, ‘speed_multiplier’: 1.0}, ‘units’: {‘time’: 12, ‘date’: ‘MDY’, ‘measure’: ‘imperial’}, ‘location’: {‘lat’: 47.6475683, ‘lng’: -122.54602915532405, ‘city’: ‘Bainbridge Island’, ‘state’: ‘Washington’, ‘country’: ‘United States’, ‘tz’: ‘America/Los_Angeles’, ‘utc’: -8.0, ‘country_code’: ‘us’}, ‘response_mode’: {‘speed_mode’: ‘quick’, ‘hesitation’: False, ‘limit_dialog’: False}, ‘privacy’: {‘save_audio’: True, ‘save_text’: True}}]
2023-08-03 07:53:14.881 - audio - neon_audio.tts.neon:_get_tts:198 - INFO - Legacy Neon TTS signature found
2023-08-03 07:53:14.895 - audio - mycroft.audio.service:execute_tts:314 - ERROR - TTS synth failed! ‘NoneType’ object has no attribute ‘endswith’
Traceback (most recent call last):
File “/home/neon/venv/lib/python3.7/site-packages/mycroft/audio/service.py”, line 312, in execute_tts
self.tts.execute(utterance, ident, listen)
File “/home/neon/venv/lib/python3.7/site-packages/neon_utils/message_utils.py”, line 168, in wrapper
return function(*args, **kwargs)
File “/home/neon/venv/lib/python3.7/site-packages/neon_audio/tts/neon.py”, line 293, in execute
responses = self.get_multiple_tts(message, **kwargs)
File “/home/neon/venv/lib/python3.7/site-packages/neon_audio/tts/neon.py”, line 247, in get_multiple_tts
wav_file, phonemes = self._get_tts(tx_sentence, request, **kwargs)
File “/home/neon/venv/lib/python3.7/site-packages/neon_audio/tts/neon.py”, line 217, in _get_tts
return self.get_tts(sentence, **plugin_kwargs)
File “/home/neon/venv/lib/python3.7/site-packages/ovos_tts_plugin_mimic3_server/init.py”, line 114, in get_tts
voice = self._validate_args_combo(lang, voice, speaker)
File “/home/neon/venv/lib/python3.7/site-packages/ovos_tts_plugin_mimic3_server/init.py”, line 81, in _validate_args_combo
if speaker and not voice.endswith(f”#{speaker}"):
AttributeError: ‘NoneType’ object has no attribute ‘endswith’
2023-08-03 07:53:15.003 - audio - neon_audio.tts.neon:get_requested_tts_languages:74 - INFO - Got profiles: [{‘user’: {‘first_name’: ‘’, ‘middle_name’: ‘’, ‘last_name’: ‘’, ‘preferred_name’: ‘’, ‘full_name’: ‘’, ‘dob’: ‘YYYY/MM/DD’, ‘age’: ‘’, ‘email’: ‘’, ‘username’: ‘local’, ‘password’: ‘’, ‘picture’: ‘’, ‘about’: ‘’, ‘phone’: ‘’, ‘phone_verified’: False, ‘email_verified’: False}, ‘brands’: {‘ignored_brands’: {}, ‘favorite_brands’: {}, ‘specially_requested’: {}}, ‘speech’: {‘stt_language’: ‘en-us’, ‘alt_languages’: [], ‘tts_language’: ‘en-uk’, ‘tts_gender’: ‘male’, ‘neon_voice’: ‘’, ‘secondary_tts_language’: ‘’, ‘secondary_tts_gender’: ‘male’, ‘secondary_neon_voice’: ‘’, ‘speed_multiplier’: 1.0}, ‘units’: {‘time’: 12, ‘date’: ‘MDY’, ‘measure’: ‘imperial’}, ‘location’: {‘lat’: 47.6475683, ‘lng’: -122.54602915532405, ‘city’: ‘Bainbridge Island’, ‘state’: ‘Washington’, ‘country’: ‘United States’, ‘tz’: ‘America/Los_Angeles’, ‘utc’: -8.0, ‘country_code’: ‘us’}, ‘response_mode’: {‘speed_mode’: ‘quick’, ‘hesitation’: False, ‘limit_dialog’: False}, ‘privacy’: {‘save_audio’: True, ‘save_text’: True}}]
2023-08-03 07:53:15.034 - audio - neon_audio.tts.neon:_get_tts:198 - INFO - Legacy Neon TTS signature found
2023-08-03 07:53:25.957 - audio - neon_audio.tts.neon:_play:139 - INFO - Played 1691074393.4267087
2023-08-03 07:53:25.962 - audio - ovos_bus_client.session:update_history:424 - WARNING - Deprecation version=0.0.4. Caller=neon_audio.tts.neon:140. mycroft-bus-client has been deprecated, please update your imports to use ovos-bus-client

Needed to start over - had to reload the recommended image.

Based on the error on line 81, I poked at the source of ovos_tts_plugin_mimic3_server, and realized that the version that got installed with pip is 0.0.1. On a hunch, I manually added the changes from 0.0.2a2, and now it works. I guess the version that pip sees needs to be updated.

It’s because that package is so very new.

Pip will only install an alpha semi-explicitly. If you just ask for the name of a package, without a version identifier, then pip will ignore all prereleases and install the most recent release version, which in this case is, indeed v0.0.1.

We have prereleases going of everything - that’s how our publishing process works - so one is almost always available for whatever package is in question. Here’s some contradictory advice: on the one hand, what you’ve done here is the obvious way to find out if a problem is still present in the development version of a package’s code. On the other hand, those prereleases might not always be compatible with the current version, which means upgrading a Python package to an alpha or a beta might have side effects, which might be irreversible, and they might not be the same as the ones in the final product. In other words, you could accidentally pull down our greatest mistake, and then have your bug report become the way we find out about it. A prerelease will always be there, for every package; whether you should pull it or emphatically not is all context.

It was exactly the right thing to do this time.

I’m glad to hear your issue seems to be fixed in the development version; I’m quite sorry you had to discover and install the alpha version yourself. I’ll flag this for my colleagues, and we’ll see how quickly we can release v0.0.2 so this doesn’t happen to the next person.

How to I as a user stimulate the incorporation of this version? With the new update changes being introduced by NeonAI, I’ll have to re-patch each time I update my Mark II.

You can add an explicit version pin to your neon.yaml file with the alpha version you want, or even with the GitHub URL and branch if you want to be completely bleeding edge. Then, even if changes occur, Neon will reinstall the skill at the version you want.

Sounds do-able. Which does raise a question as to a good source (other than the code) of documentation on the neon.yaml file. So far, I’ve only seen bits and snatches of changes that can be made. A pointer or pointers would be appreciated.

Here ya go! Mike Gray | Installing Neon Skills

As to more options, here’s an example neon.yaml file. It’s not an exhaustive list of settings, but it should spark the imagination: https://github.com/NeonGeckoCom/NeonCore/blob/758b30e0f0b1936144c4924d1707d3d0ac881641/neon_core/configuration/neon.yaml#L1

1 Like

Just the kind of thing I was looking for!! Tnx!

1 Like

neon.yaml had some neon specific settings, but the majority of settings come from ovos-config package and default values are documented there

neon essentially makes it yaml format instead of json, but contents are the same

2 Likes