Skip to content

feat(speech): add SpeechEngine abstraction, native engine and useSpeech adapter scaffold with tests - #17

Merged
carloshskp merged 1 commit into
mainfrom
feat/implement-usespeech-plan-from-docs
Apr 20, 2026
Merged

feat(speech): add SpeechEngine abstraction, native engine and useSpeech adapter scaffold with tests#17
carloshskp merged 1 commit into
mainfrom
feat/implement-usespeech-plan-from-docs

Conversation

@carloshskp

Copy link
Copy Markdown
Owner

Motivation

  • Implementar o plano de migração useSpeech desacoplando a UI do window.speechSynthesis para permitir integração segura com react-text-to-speech sem regressões.
  • Garantir testes determinísticos e gate de cobertura antes de trocar a engine de fala em produção.
  • Fornecer fallback explícito para ambientes sem suporte à API de fala para evitar chamadas inválidas e melhorar UX.

Description

  • Introduzido contrato SpeechEngine e estados padronizados em src/speech/speechEngine.ts para unificar a API de síntese.
  • Implementadas engines concretas: NativeSpeechEngine (Web Speech) em src/speech/nativeSpeechEngine.ts, UnsupportedSpeechEngine em src/speech/unsupportedSpeechEngine.ts, e scaffold adapter RttsSpeechEngine (base para useSpeech) em src/speech/rttsSpeechEngine.ts.
  • Adicionado factory createSpeechEngine em src/speech/createSpeechEngine.ts e integrada ao TextReaderApp para injeção de dependência e sincronização de rate/language/status.
  • Atualizados testes e infraestrutura: novos testes tests/native-speech-engine.test.ts e tests/text-reader-app-speech.test.ts, ajuste de tests/rate-control.test.ts para usar mock de engine, e coleta/thresholds de cobertura em jest.config.cjs.
  • Documentação (EN + PT-BR) atualizada com arquitetura de síntese, limitações e estratégia de migração orientada por cobertura, e package.json atualizado com dependências de suporte à trilha de migração (react, react-dom, react-text-to-speech).

Testing

  • Executado yarn test:unit:coverage com a suíte unitária e novos testes, todos os testes passaram e cobertura dos módulos de engine foi verificada conforme thresholds configurados (local).
  • Executado yarn build com sucesso para validar o bundle de produção.
  • Testes adicionados incluíram tests/native-speech-engine.test.ts e tests/text-reader-app-speech.test.ts, além de ajustes em tests/rate-control.test.ts, e todos os conjuntos de testes locais finalizaram com status verde durante validação.

Codex Task

@carloshskp
carloshskp merged commit 91df72b into main Apr 20, 2026
1 check passed
@carloshskp
carloshskp deleted the feat/implement-usespeech-plan-from-docs branch April 20, 2026 18:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant