Skip to content

Latest commit

 

History

History
11 lines (6 loc) · 3.45 KB

File metadata and controls

11 lines (6 loc) · 3.45 KB

Agents File for Speechify/spfy

This folder is for figuring out the format of the en-US\tom\tom.vin and en-US\tom\tom8.vdb files used by the SpeechWorks International Speechify TTS engine (2003). These files contain the acoustic model data, and are loaded by the bin/SWIttsEngine.dll library, which itself loads other DLLs in the same folder. Tom is a safe baseline to use when reverse engineering. While working on reverse engineering the library, make updates to reveng/README_TECHNICAL.md and appropriate updates to reveng/README.md with any insights about the file formats. As well, make periodic updates to reveng/EXPERIMENTS.md with any experiments you have done, and the results of those experiments. This will help keep track of your progress and the various hypotheses you have tested. reveng/DLL_ANALYSIS.md should be updated with any insights gained from analyzing the DLLs in the bin/ folder, and how they interact with the tom.vin and tom8.vdb files. This will help keep track of the various DLLs and their functions, and how they relate to the file formats.

All README files should be living documents that captures all current knowledge about the file formats, and is updated as new information is discovered. The goal is to eventually have a complete specification of the file formats, which can be used for writing custom tools to read/write these files and make new voices for the backend to use. Date stamp when new discoveries or insights are made or found. While working, use Python scripts to validate hypotheses about the file formats. These temporary scripts live in a scratch directory outside the repo and are deleted when no longer needed. Where the docs name a bare script that is not in the tree, that is one of them: the name records what was run, not a file you can open.

Use capstone, keystone, or similar Python libraries to analyze the DLLs within the bin/ folder and understand how the various DLLs read these files, which can provide insights into the file formats. If you are stuck on a problem, or are confused, write down your current understanding and assumptions in reveng/README_TECHNICAL.md, and ask for help from me directly to clarify any misunderstandings or to get hints on how to proceed. The reveng/README_TECHNICAL.md file should be the central source of truth for all information about the file formats, and should be updated regularly as new information is discovered. If something you found contradicts previous assumptions or what is currently in the READMEs, make sure to note the contradiction and update the document accordingly. This will help keep track of the evolving understanding of the file formats and ensure that all information is organized in one place.

Analyze both the en-US\tom\tom.vin and en-US\tom\tom8.vdb files concurrently when possible, but crucially, do NOT modify the files themselves directly. Tom should be kept intact. By analyzing both files at once using the Python language, you can cross-validate your findings and gain a deeper understanding of the file formats.

The ultimate goal is to have a complete understanding of the tom.vin and tom8.vdb file formats, which can be used to create new voices for the TTS engine, or a new "replica" of the TTS engine that can read these files and produce speech. This will be a significant achievement, and will require careful analysis, experimentation, and documentation. Keep track of all your findings, and don't hesitate to ask for help when needed. Good luck!