Найти в Дзене

И вновь тема Speech API и Delphi 12.1... Асинхронный вывод.

Собственно, речь пойдет о том, как добиться того, чтобы наше приложение не "подвисало" в процессе воспроизведения речевым синтезатором фразы. На самом деле раньше (когда мы использовали импорт библиотеки типов) все было просто и понятно. Импортируемая функция имела флаги, на все случаи жизни... Поэтому мы легко и непринужденно ставили SVSFlagsAsync и радовались жизни... Но когда мы работаем с чистым OLE, нас такой возможности нет... Хотя если включить голову и немного фантазии... Кто ж запретит нам исполнять этот код в отдельной нити (Tread)? Да и потом с чистой совестью указать в резюме, что мы имеем такой скилл))) Собственно, создадим Tread... Которому, через переопределённый конструктор Create передадим нужный к произнесению текст (в данном случае, строкой)... И напишем процедуру... Ну, собственно и все. Работаем дальше!

Собственно, речь пойдет о том, как добиться того, чтобы наше приложение не "подвисало" в процессе воспроизведения речевым синтезатором фразы.

На самом деле раньше (когда мы использовали импорт библиотеки типов) все было просто и понятно.

Импортируемая функция имела флаги, на все случаи жизни...

-2

Поэтому мы легко и непринужденно ставили SVSFlagsAsync и радовались жизни...

-3

Но когда мы работаем с чистым OLE, нас такой возможности нет...

Хотя если включить голову и немного фантазии... Кто ж запретит нам исполнять этот код в отдельной нити (Tread)? Да и потом с чистой совестью указать в резюме, что мы имеем такой скилл)))

Собственно, создадим Tread...

-4

Которому, через переопределённый конструктор Create передадим нужный к произнесению текст (в данном случае, строкой)...

И напишем процедуру...

-5

Ну, собственно и все.

Работаем дальше!