Repository navigation
v0.1.1
Highlights
- English TTS now fetches its NLTK data automatically. On first use,
Speaker.open()/PiperEngine.preflight()downloads the three NLTK resources the English phonemizer needs (averaged_perceptron_tagger,averaged_perceptron_tagger_eng,cmudict). They are stored next to the Piper voices, in$XDG_CACHE_HOME/palmimo/models/nltk_data. The archives come from a pinned upstream commit and are checked against SHA-256. This replaces the manualnltk.downloaderstep, and it works for apps that run under a restricted home directory. (#57) - Reading present positions no longer hides a dropped motor.
ServoDriver.read_positions_span()returns which motors answered, which stayed silent, and which were unreached.read_positions()is unchanged. (#32) - Each example is now its own uv project. Every directory under
examples/has its ownpyproject.tomlanduv.lock, and resolvespalmimo-sdkfrom PyPI the way a third-party app would. (#35)
Upgrade notes
- NLTK data you already have is still used. That covers data on NLTK's own search path (
NLTK_DATA,~/nltk_data,/usr/share/nltk_data, …), zipped or unpacked. Nothing is downloaded again for it. - Offline machines: run the command from installation.md on a networked machine, then copy the
nltk_datadirectory into the cache. - To run an example,
cdinto its directory and useuv runthere. Each example's README has the exact commands.
Known issues
- None new in this release.
Tested on a Raspberry Pi (aarch64, Python 3.13). A Portal-installed app synthesized English speech, and it fetched the NLTK data into its own cache with no system copy present.
What's Changed
Other changes
- feat(io): read present positions without masking a dropped motor by @isaka1022 in #32
- refactor: make each example a standalone uv project by @DoskoiYuta in #35
- fix(sdk): 0.1.1 — fetch the NLTK data for English TTS automatically by @DoskoiYuta in #57
Full Changelog: v0.1.0...v0.1.1