reVoice
Added 2025-05-07 00:30:53 +0000 UTCreVoice is a fully automated, batch-processing voice synthesis tool designed to streamline the conversion of dialogue CSVs into MP3 files using the ElevenLabs API. Developed for modding pipelines like Morroblivion, Daggerblivion and Oblivion Remaster, it intelligently reads structured CSV exports from xEdit, synthesizes each dialogue field with speaker-appropriate voice mappings, then saves and organizes them into appropriate folder structures. Tested for TES4 Oblivion possibly untested support for Fallout 3/NV and Skyrim.
Features:
GUI-driven batch processor for converting dialogue/*.csv files into MP3s.
Automatic resumption from last processed CSV using lastplace.txt.
Intelligent voice routing using VoiceID columns, supporting UUIDs and named voices.
Rate-limit aware: retries and backs off automatically on 429 or server errors.
Built-in cooldown timer between batch executions (70s delay).
Live GUI console with file count, ETA, and processed line status. The download speed display is broken.
CSVs: via utilitycsv.py, ensuring field validation and proper encoding. Each row is saved and file path reconstructed using the OutputPath field.
Requirements
Python 3.7+
ElevenLabs API .env
xEdit and Dialogue Export
Each CSV must have the following columns auto generated with the included xEdit script Oblivion - Export Dialogues.pas
FormID
VoiceID
SpeakerInfo
OutputPath ← determines where the MP3 is saved in output/
Dialogue ← the text that will be spoken
Dialogue Processing
Use reVoiceMapper to map out the VoiceID field in the CSV file generated via xedit.
CSV Processing
chunkCSV will split any csv found in chunkCSV and output part files to chunkCSVout maximum of 17 rows per csv a safe guard for larger csv files and ElevenLabs API limits.
CreaSplitDremora, UnknownVoiceSplit, NoDuplicateFormIDs and DialogueActnQuickClean can all be used and will process any CSV found in the folder next to these scripts. Each script with 'Split' in the name, will separate Dremora/Creature dialogue rows from the csv and output a new csv with the Dremora/Creature rows and resaves the source.
How to use reVoice
Click “Load CSV” to auto-load the next batch from the dialogue/ folder.
Click “Run” to begin processing the current CSV.
The program will:
Speak each line using the appropriate VoiceID
Save MP3s to output/ maintaining folder structure
Wait 70 seconds between batches for API limits
Remember your progress via lastplace.txt using the part### number for last processed csv, if a csv fails halfway through set lastplace.txt to 1 csv before and run again.
A monitor window will open showing:
Total MP3s generated
Disk usage
Upload/download speed (Broken feature)