Skip to content

Work in progress: Voice Acting#1

Draft
Marcus10110 wants to merge 11 commits into
masterfrom
feature/voice-acting
Draft

Work in progress: Voice Acting#1
Marcus10110 wants to merge 11 commits into
masterfrom
feature/voice-acting

Conversation

@Marcus10110

@Marcus10110 Marcus10110 commented Apr 12, 2026

Copy link
Copy Markdown
Owner

See tools/voice_acting/README.md for details.

This is a work in progress!

To test this out, you will need a copy of Ultima 7 the black gate, and you will need to build this branch locally. Out of the box, the game should work properly but without voice acting. Then, you can either generate new voices with https://elevenlabs.io/ using the scripts in this repo (note, you will likely need to change the two custom voices I've created for Iolo and Finnigan) or you could switch the generator script to use the text to speech generator of your choice.

Alternatively, you can use the voice file's I've generated. You can download them from the releases list on this repo.

The *.ogg files need to end up in this directory: <Game directory>\patch\voice_acting for example: C:\Program Files (x86)\GOG Galaxy\Games\Ultima 7\patch\voice_acting for GOG.

If the voices still aren't playing, check standard out for errors. It works on my machine!

Demo: https://youtu.be/qu7GVMy-Q84

There are still lots of issues, many of the generated voice lines are pretty rough, but I'm enjoying it right now!

PR Notes

This PR contains 3 main components:

  • Actual changes to the exult engine to support voice playback. These changes are actually pretty minimal.
  • python scripts to aid in the extraction of voice lines from the game and generation of audio files using the elevenlabs.io API. (Note, only 10% of the voice files in the release at this time were generated by elevenlabs. The rest were generated using open source text-to-speech that cloned the elevenlabs voices to save $$$. The local TTS code is not in this PR but I could add it on request. It took about 10 hours on a RTX 3070 to generate about 8000 voice lines. This saved an estimated $300 of elevenlabs credits.
  • A simple web application (meant to run locally) to help you stay sane while trying to assign unique voices to 275 different NPCs.

@AphexSign

Copy link
Copy Markdown

Hi Marcus,

I came across your Ultima VII voice acting project for Exult and it looks really impressive — great work on this!

I read through the PR and documentation, and I saw the mention that a generated voice pack is available via the releases. However, I wasn’t able to find any download links in the repository.

Would you be willing to share the voice pack you generated? I’d love to try it out and test it locally.

Thanks a lot for your work on this — it’s a really exciting idea for bringing new life to Ultima VII!

Best regards

@Marcus10110

Copy link
Copy Markdown
Owner Author

Hi @AphexSign, sorry about that! I've just published my voice pack:
https://github.com/Marcus10110/exult/releases/tag/0.0.1

I added a bunch of detail to the release notes to explain some of the problems with the voice lines.

There is a lot of room for improvement, and plenty of bugs to fix. The moment this project reached "pretty playable" though I completely dropped working on it and switched to playing the game full time. I just finished it a few days ago! I'd like to get back into the project and clean it up more to make it easier for others to enjoy or modify.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants