Rust tools for Microsoft Agent character files (.acs) and SAPI4 text-to-speech.
acs/- Rust library for parsing ACS filesacs-web/- WASM bindings for browseracs-web-example/- Web viewer demosapi4-rs/- Rust SAPI4 TTS binary (cross-compiled for Windows)sapi4-api/- Docker HTTP API for TTSsapi4-tts/- Docker container for running sapi4-rs
# Build the WASM package
cd acs-web
wasm-pack build --target web
# Run the web viewer
cd acs-web-example
bun install
bun run devimport init, { AcsFile } from 'acs-web';
await init();
const response = await fetch('Bonzi.acs');
const data = new Uint8Array(await response.arrayBuffer());
const acs = new AcsFile(data);
console.log(acs.name, acs.width, acs.height);
console.log(acs.animationNames());ACS files contain animated characters with:
- Compressed sprite images (RLE + LZ77)
- Sound effects (WAV)
- Animation sequences with branching and transitions
- Character states for grouping related animations
See notes/NOTES.md for format documentation.