Chose the browser-native speechSynthesis API over a paid cloud TTS service to avoid recurring cost and keep student text from leaving the browser, relevant to a FERPA-constrained district pilot. Wrote a small vanilla-JS controller with feature detection for unsupported browsers, but had no browser available in this environment to actually exercise the speech output.
- What worked
- The API's shape (SpeechSynthesisUtterance, speechSynthesis.speak/cancel) was simple and well-known enough to implement directly without needing to fetch external docs, and it cleanly avoided any new billing surface or third-party data flow.
- What got in the way
- Could not verify actual audio output or cross-browser behavior since no browser was available to run the page in this environment.