Piper will not load model
I have the Piper addon running on Home Assistant. I put the files in /share/piper. I did not get any errors and I couldn't set it as a voice in my voice assistant.
Yeah, I did.
Hello, I am having the same issue. I followed a good tut here: https://github.com/domesticatedviking/TextyMcSpeechy/blob/6673bccd8f687b9dbc6201155ed5ab42f3dbbb2d/docs/using_custom_voices_in_home_assistant_os.md
Running a HA Green box.
Installed Piper and Wyoming Protocol, installed and running on that box.
Piper plugin version 2.1.1
Both are configured and running according to their logs.
I can use the default Piper voices from my Home Assistant Voice Preview integration (Settings -> Voice Assistants -> Assist configuration).
I uploaded the files from your repo to the /shared/piper directory using the Studio Code Server plugin for Home Assistant.
I included the jarvis-medium.onnx, jarvis-medium.onnx.json and the MODEL_CARD files in that directory.
I rebooted HA, the jarvis voice doesn't show up as a voice selection in the Settings -> Voice Assistants -> Assist configuration (under en_GB).
I renamed the files as that tut suggests, like so: en_GB-jarvis-medium.onnx, en_GB-jarvis-medium.onnx.json.
I edited the json file to ensure the 'dataset' field matches the file names.
I rebooted HA, the jarvis voice doesn't show up as a voice selection in the Settings -> Voice Assistants -> Assist configuration (under en_GB).
Any thoughts on what I can try next? Thanks in advance, this is a cool project to tinker with, thanks for making this custom voice!
Hello, I am having the same issue. I followed a good tut here: https://github.com/domesticatedviking/TextyMcSpeechy/blob/6673bccd8f687b9dbc6201155ed5ab42f3dbbb2d/docs/using_custom_voices_in_home_assistant_os.md
Running a HA Green box.
Installed Piper and Wyoming Protocol, installed and running on that box.
Piper plugin version 2.1.1
Both are configured and running according to their logs.
I can use the default Piper voices from my Home Assistant Voice Preview integration (Settings -> Voice Assistants -> Assist configuration).
I uploaded the files from your repo to the /shared/piper directory using the Studio Code Server plugin for Home Assistant.
I included the jarvis-medium.onnx, jarvis-medium.onnx.json and the MODEL_CARD files in that directory.
I rebooted HA, the jarvis voice doesn't show up as a voice selection in the Settings -> Voice Assistants -> Assist configuration (under en_GB).
I renamed the files as that tut suggests, like so: en_GB-jarvis-medium.onnx, en_GB-jarvis-medium.onnx.json.
I edited the json file to ensure the 'dataset' field matches the file names.
I rebooted HA, the jarvis voice doesn't show up as a voice selection in the Settings -> Voice Assistants -> Assist configuration (under en_GB).Any thoughts on what I can try next? Thanks in advance, this is a cool project to tinker with, thanks for making this custom voice!
EDIT: Ok I got it to show up. I had to click the Reload function on the Wyoming protocol service. You'd think rebooting HA would do the same, but no. I was able to use the files as they come from the repo, no modifications.
But now I get a run time error when testing the Jarvis voice:
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service piper: starting
s6-rc: info: service piper successfully started
s6-rc: info: service discovery: starting
2025-12-24 11:44:14.312728376 [W:onnxruntime:Default, device_discovery.cc:164 DiscoverDevicesForPlatform] GPU device discovery failed: device_discovery.cc:89 ReadFileContents Failed to open file: "/sys/class/drm/card1/device/vendor"
INFO:main:Ready
[11:44:17] 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
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=InvalidProtobuf('[ONNXRuntimeError] : 7 : INVALID_PROTOBUF : Load model from /share/piper/jarvis-medium.onnx failed:Protobuf parsing failed.')>
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 137, in handle_event
raise err
File "/usr/local/lib/python3.11/dist-packages/wyoming_piper/handler.py", line 111, in handle_event
await self._handle_synthesize(self._synthesize)
File "/usr/local/lib/python3.11/dist-packages/wyoming_piper/handler.py", line 199, in _handle_synthesize
_VOICE = PiperVoice.load(
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/piper/voice.py", line 129, in load
session=onnxruntime.InferenceSession(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 485, in init
self._create_inference_session(providers, provider_options, disabled_optimizers)
File "/usr/local/lib/python3.11/dist-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 573, in _create_inference_session
sess = C.InferenceSession(session_options, self._model_path, True, self._read_config_from_model)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
onnxruntime.capi.onnxruntime_pybind11_state.InvalidProtobuf: [ONNXRuntimeError] : 7 : INVALID_PROTOBUF : Load model from /share/piper/jarvis-medium.onnx failed:Protobuf parsing failed.
I've never seen that error before. Did you figure out the issue?
I've never seen that error before. Did you figure out the issue?
No I did not. Looking at it with fresh eyes. It seems the ONNX runtime can not parse the file. It could be a permissions issue on the copied files? I used the Studio Code Server plugin to transfer the files. Has anyone ever had permission issues with copied files? I also notice the no GPU detected warning on Piper start. Does Piper require a GPU?
Unfortunately i have to report the same issue.
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=InvalidProtobuf('[ONNXRuntimeError] : 7 : INVALID_PROTOBUF : Load model from /share/piper/jarvis-high.onnx failed:Protobuf parsing failed.')>
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 137, in handle_event
raise err
File "/usr/local/lib/python3.11/dist-packages/wyoming_piper/handler.py", line 120, in handle_event
await self._handle_synthesize(self._synthesize)
File "/usr/local/lib/python3.11/dist-packages/wyoming_piper/handler.py", line 199, in _handle_synthesize
_VOICE = PiperVoice.load(
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/piper/voice.py", line 129, in load
session=onnxruntime.InferenceSession(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 485, in __init__
self._create_inference_session(providers, provider_options, disabled_optimizers)
File "/usr/local/lib/python3.11/dist-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 573, in _create_inference_session
sess = C.InferenceSession(session_options, self._model_path, True, self._read_config_from_model)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
onnxruntime.capi.onnxruntime_pybind11_state.InvalidProtobuf: [ONNXRuntimeError] : 7 : INVALID_PROTOBUF : Load model from /share/piper/jarvis-high.onnx failed:Protobuf parsing failed.
Unfortunately i have to report the same issue.
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=InvalidProtobuf('[ONNXRuntimeError] : 7 : INVALID_PROTOBUF : Load model from /share/piper/jarvis-high.onnx failed:Protobuf parsing failed.')> 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 137, in handle_event raise err File "/usr/local/lib/python3.11/dist-packages/wyoming_piper/handler.py", line 120, in handle_event await self._handle_synthesize(self._synthesize) File "/usr/local/lib/python3.11/dist-packages/wyoming_piper/handler.py", line 199, in _handle_synthesize _VOICE = PiperVoice.load( ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/dist-packages/piper/voice.py", line 129, in load session=onnxruntime.InferenceSession( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/dist-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 485, in __init__ self._create_inference_session(providers, provider_options, disabled_optimizers) File "/usr/local/lib/python3.11/dist-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 573, in _create_inference_session sess = C.InferenceSession(session_options, self._model_path, True, self._read_config_from_model) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ onnxruntime.capi.onnxruntime_pybind11_state.InvalidProtobuf: [ONNXRuntimeError] : 7 : INVALID_PROTOBUF : Load model from /share/piper/jarvis-high.onnx failed:Protobuf parsing failed.
What is your system setup?
I have haos on a nuc and piper addon 2.1.1
Home Assistant OS
Core 2026.1.3
Supervisor 2026.01.1
Operating System 17.0
Frontend 20260107.2
I also use chmod 777 on both the onnx and onnx.json file just to make sure it's not a permission issue.
The issue happened regardless of uploading via File Editor or Visual Studio Code Server.
The tutorial I linked in my first post: https://github.com/domesticatedviking/TextyMcSpeechy/blob/6673bccd8f687b9dbc6201155ed5ab42f3dbbb2d/docs/using_custom_voices_in_home_assistant_os.md
The author says you need to change the word "medium" to "Medium" in the file, for the medium quality jarvis onnx file. Maybe try that? I'll get around to trying that myself one of these mornings. If the error represents file parsing, that could cause such an error?
I hope this helps someone. I didn't have any luck after changing 'medium' to Medium'. In the docs it says it should be lowercase 'medium', so I went back to that.
I eventually got Jarvis test working, before it kept failing to locate the model saying it doesn't exist, file located in share/piper and I did a chmod 777 on the files because I copied using Windows machine to Samba Share on Homeassistant.
Ultimately I got it working by changing the 'dataset' to the name of my file and adding a value for 'name' field which is not present in the source.
I can't be bothered to check exactly which of these two fields fixed the issue, I'm just glad it's working after battling for a few hours.
Notes
- I also disabled downloading 'voices' as I believe this can also cause issues.
- I changed the name of my file to 'en_GB-jarvis-medium.onnx.json'
Below is an snippet of the json which is working:
"dataset": "en_GB-jarvis-medium",
"name": "jarvis",
"audio": {
"sample_rate": 22050,
"quality": "medium"
},
"espeak": {
"voice": "en-gb-x-rp"
},
"language": {
"code": "en_GB",
"family": "en",
"region": "en_GB",
"name_native": "English",
"name_english": "English",
"country_english": "Great Britain"