I'd like to submit a couple voice models (medium/high) that emulate the JARVIS voice from the Iron Man movies. I've wanted to have this voice powering my home automation for a while but never found one online that did it quite right. I teamed up with CSH_Bro on Reddit and we were able to create a couple models that seem to work pretty well! Would appreciate having these added to the piper voices so that other users can have JARVIS systems of their own.

Thanks!

Oh these are licensed under MIT if that matters. I'm happy to change the license if needed though.

jgkawell changed pull request status to open

@synesthesiam Just checking in. Is there anything else you need from me to be able to add these models to the repo?

Rhasspy org

@jgkawell Where did you get the audio data from?

@synesthesiam CSH_Bro pulled it from a mobile game I think. I then transcribed it into training data so that piper could use it.

Rhasspy org
β€’
edited Apr 22

OK, that's what I assumed. While I personally am all for this kind of thing, I would risk having my whole HuggingFace account taken down by hosting voices derived from any copyrighted audio.
If someone else is willing to create a repo for hosting community created voices like this, I will happily link to it.

Yeah I had a thought that the source might be an issue. Could that repository be here on HuggingFace or do you think it would need to be elsewhere. I'm happy to host the repo here (I already am haha) if you think that's okay.

Secondarily, is there a plan to add the ability to set custom HuggingFace (or other git/file server) links to the Home Assistant Piper add-on so that hosted voices like this one are easy to add to Piper and keep up to date without having to download them each time an update comes out? I could help out with that feature if need be as I would like it to be easy to share models like this one with my friends who also run Home Assistant but are less tech savvy to download files and deal with the terminal in Home Assistant.

Rhasspy org

The repo could be on HuggingFace or wherever, just as long as you're OK with the risk of it getting taken down (low risk for sure, but still).

Yes, there is a plan to add custom repos for Piper voices. The next version of Piper should support this, though I don't have a timeline yet of when it will be released :/

hey @jgkawell - any chance you could message me elsewhere for those Jarvis files? feel free to contact me using any of the details on my website in bio
edit: don't worry, found out how to find the specific branch to download them myself

Found jgkawell's Jarvis files and having some problems getting them to load or work. I'm running Piper in a Docker container (rhasspy/wyoming-piper)and dropped them into the /data folder. Front end is Home Assistant with the Wyoming protocol connected to piper, whisper and openwakeword. All other voices are working.

Error Message:

ERROR:asyncio:Task exception was never retrieved

future: <Task finished name='wyoming event handler' coro=<AsyncEventHandler.run() done, defined at /usr/local/lib/python3.9/dist-packages/wyoming/server.py:31> exception=VoiceNotFoundError('jarvis')>

Traceback (most recent call last):

File "/usr/local/lib/python3.9/dist-packages/wyoming/server.py", line 41, in run

if not (await self.handle_event(event)):

File "/usr/local/lib/python3.9/dist-packages/wyoming_piper/handler.py", line 53, in handle_event

raise err

File "/usr/local/lib/python3.9/dist-packages/wyoming_piper/handler.py", line 48, in handle_event

return await self._handle_event(event)

File "/usr/local/lib/python3.9/dist-packages/wyoming_piper/handler.py", line 83, in _handle_event

piper_proc = await self.process_manager.get_process(voice_name=voice_name)

File "/usr/local/lib/python3.9/dist-packages/wyoming_piper/process.py", line 114, in get_process

ensure_voice_exists(

File "/usr/local/lib/python3.9/dist-packages/wyoming_piper/download.py", line 77, in ensure_voice_exists

find_voice(name, data_dirs)

File "/usr/local/lib/python3.9/dist-packages/wyoming_piper/download.py", line 183, in find_voice

raise VoiceNotFoundError(name)

wyoming_piper.download.VoiceNotFoundError: jarvis

@kbuchaniec I run Piper in the official Home Assistant add-on and for that instead of putting them into the /data directory you should be putting them in the /share/piper directory on the HAOS host. Did you mean you're using the standalone Docker container and not the add-on?

Running HAOS with piper installed as an Add-On. I put the files under /share/piper/ and rebooted the OS but it doesnt show up in the config drop down menu. Do i need to edit something?

odd also idk where piper installes to but if i run "find / -name "piper" i get back the folder i made in /share/ some mp3 files and 2 piperw files so not sure if the terminal Add-on has high enough privliges and I opened the Virtual machine console but its really dumbed down or something wont take ls or cd .. commands just HA info etc... commands in the HA CLI

Screenshot_371.png

Ive wanted a jarvis sounding assistant for so many years please help.

@techy4t4c434 A couple things for you to check:

  1. Not sure what drop down you're looking at for the voices. If you're looking at the "Voice" drop down under the Piper add-on's configuration you won't see the Jarvis voice. That drop down is only populated by the default voices officially supported by the add-on. Instead go to the "Assistants" page in the Home Assistant settings and click "Add Assistant". In the configuration there under "Text-to-speech" you'll want to select the following options:

image.png

  1. If the voice still isn't showing up in the Assistants drop down, try renaming the files you have under /share/piper. For example, here is what my directory looks like:

image.png

Side note: you don't need the MODEL_CARD :)

Hope this helps!

Oh that guess looking at the right drop down helps. Now i see and tried the Jarvis voice but when i hit TRY VOICE it had an error like the other guy had... went to the piper addon page to see the logs got:
(ill try renaming them to what u posted above see it that helps)

ERROR:asyncio:Task exception was never retrieved
future: <Task finished name='wyoming event handler' coro=<AsyncEventHandler.run() done, defined at /usr/local/lib/python3.11/dist-packages/wyoming/server.py:31> exception=VoiceNotFoundError('jarvis')>
Traceback (most recent call last):
File "/usr/local/lib/python3.11/dist-packages/wyoming/server.py", line 41, in run
if not (await self.handle_event(event)):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/wyoming_piper/handler.py", line 53, in handle_event
raise err
File "/usr/local/lib/python3.11/dist-packages/wyoming_piper/handler.py", line 48, in handle_event
return await self._handle_event(event)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/wyoming_piper/handler.py", line 83, in _handle_event
piper_proc = await self.process_manager.get_process(voice_name=voice_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/wyoming_piper/process.py", line 114, in get_process
ensure_voice_exists(
File "/usr/local/lib/python3.11/dist-packages/wyoming_piper/download.py", line 77, in ensure_voice_exists
find_voice(name, data_dirs)
File "/usr/local/lib/python3.11/dist-packages/wyoming_piper/download.py", line 183, in find_voice
raise VoiceNotFoundError(name)
wyoming_piper.download.VoiceNotFoundError: jarvis

renamed it like you had above and rebooted the whole server and it still had the same error

and here is an image of the GUI error popup:
Screenshot_372.png

if it helps if i click the 3 dots and click Debug and "Run Audio Pipeline"
Screenshot_373.png

After reviewing the wyoming_piper code here I think I might know what's going on.

The name of the "Voice" you select in Assistants much match the file name of the model and model config files. Here's the catch, the name in the Voice dropdown is populated from the dataset attribute in the <MODEL>.onnx.json file and if that dataset attribute doesn't match the <MODEL>/filename then you get the error you're showing.

In your case you should be able to fix it easily by renaming your files to simple jarvis.onnx and jarvis.onnx.json (and then restarting HA). I'm also updating my repo on here so the files are copy-pasteable into HA without needing any changing and will update the README to explain how to use them.

jgkawell changed pull request status to closed

For anyone coming here just looking for the JARVIS voice, checkout my repo here which has instructions on adding it to Home Assistant using the Piper add-on: https://huggingface.co./jgkawell/jarvis

Okay. Got it working! My problem was that I was running it in a separate container outside of HA. I installed the official Add-on along with the Samba one. Copied the voices to it and it works great.

All I need now is to find a Lebowski voice along with Darth Vader.

Sign up or log in to comment