# OpenTV: a portable C rebuild of Centigram TruVoice

> Rebuilds Centigram TruVoice, the 1997 text-to-speech engine, as portable C. tools/difftest.py compares PCM from the C build with the original DLL across the corpus checked in that script.

- Type: Case study
- Targets: Binary
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-04
- Added to the catalog: 2026-11-09
- Original resource: <https://github.com/RetroBunn/tv-decomp>
- Primary source: <https://github.com/RetroBunn/tv-decomp/blob/8488e51f5bca5685590186693b76dc61bf23fdaf/README.md>
- Catalog page: <https://awesomerea.org/resources/opentv-truvoice-case/>
- Record JSON: <https://awesomerea.org/resources/opentv-truvoice-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/opentv-truvoice-case/index.md)

## Requirements & limits

- **Prerequisites:** Needs an x86_64 mingw-w64 toolchain, used in -m32 freestanding mode for the 32-bit build, plus dlltool and Python 3. Put CGRM_EN.DLL in TruVoice/. That DLL is not in the repository. pefile is only required by the tools that read a DLL.
- **Scope:** The README describes a C library, a command-line speaker, and an NVDA add-on, at 32 and 64 bits. It says SAPI 4 COM glue, config dialogs, and waveOut playback are documented but not ported.
- **Testing evidence:** The README says tools/difftest.py runs 59 corpus inputs in 335 configurations and demands identical PCM, for the hooked build and the standalone 32-bit and 64-bit ports. --ref compares those builds with a recording from the installed engine.
- **License:** LICENSE is the MIT License, copyright 2026 RetroBunn. The original TruVoice DLL is not in the repository and is not part of that grant.

## Primary sources

1. <https://github.com/RetroBunn/tv-decomp/blob/8488e51f5bca5685590186693b76dc61bf23fdaf/README.md>
2. <https://github.com/RetroBunn/tv-decomp/blob/8488e51f5bca5685590186693b76dc61bf23fdaf/tools/difftest.py>
3. <https://github.com/RetroBunn/tv-decomp/blob/8488e51f5bca5685590186693b76dc61bf23fdaf/LICENSE>

## More in Native binaries

- [L&H TruVoice: a portable C rebuild of tv_enua.dll](https://awesomerea.org/resources/lh-truvoice-decomp-case/index.md) · Case study
- [Microsoft Anna: a bit-exact C rebuild of the TTS20 engine](https://awesomerea.org/resources/ms-anna-tts-case/index.md) · Case study
- [OneCore TTS: a C rebuild of David, Zira and Mark](https://awesomerea.org/resources/onecore-david-zira-mark-case/index.md) · Case study
- [Microsoft Sam: a portable C rebuild of the SAPI 5 engine](https://awesomerea.org/resources/ms-sam-mike-mary-case/index.md) · Case study
- [Eloquence 6.1: a C rebuild of ECI.DLL](https://awesomerea.org/resources/eloquence-61-eci-case/index.md) · Case study
- [Prose 2000 Reborn: a C decompilation of the speech board](https://awesomerea.org/resources/prose2000-reborn-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
