type TPdfReadingSession = class(TComponent) ... end;
La sessione non parla mai direttamente con un motore di sintesi vocale; l'host gestisce le callback OnSpeak, cancel, pause e resume mentre la sessione tiene traccia di blocchi e parole
Caricare i blocchi con LoadSpoken, avviare con Play o PlayFrom, poi chiamare Tick man mano che il motore segnala lo stato occupato o inattivo
Quando il motore di sintesi vocale segnala l'offset di un carattere parlato, chiamare FeedSpokenPosition affinché il TPdfView collegato possa evidenziare la parola corrente
ReadingSession1.View := PdfView1;
ReadingSession1.LoadSpoken(Chunks);
ReadingSession1.Play;