Як навчити додаток Delphi розмовляти?, Delphi, Програмування, статті

Alec Bergamini

Працює з: Delphi 5.x (або вище)

11-го серпня 2001 Microsoft оголосила про випуск SAPI 5.1 SDK.Даний продукт можна використовувати в будь-якому мовою,який підтримує OLE автоматизацію.

У даній статті я постараюся раасказать, яквстановити SAPI 5.1 SDK. Потім ми подивимося, яквикористовувати SDK в додатку Delphi дляперетворення тексту в синтезовану мову.Синтезована мова буде програватися черезспікер. Все це тестувалося в Delphi 5 і 6.

Щоб скачати SAPI 5.1, необхідно зайти на сайтMicrosoft’s Speech.net Technologies за адресою http://www.microsoft.com/speech/і клікнути по посиланню download. Далі буде запропонованопрочитати коментарі до даного продукту. Якщо вВашій системі, мова за замовчуванням відрізняється від USEnglish, то настійно рекомендую прочитати цікоментарі до кінця.

Якщо Ви використовуєте beta версію операційноїсистеми XP, то у Вас можуть виникнути деякіпроблеми. Проблеми пов’язані з тим, що більшістьbeta версій XP включають в себе ранні версії SAPI 5.1.Тому не намагайтеся інсталювати release версіюSAPI 5.1 на XP, вона не буде працювати.

Після того як Ви прочитаєте коментарі, топриступайте до завантаження Speech SDK 5.1. Все що дляцього потрібно, це натиснути на посилання Speech SDK 5.1(68 MB). В архіві міститься сам SDK, докумантація, атак же текта англійською для прикладу.

Отже, після скачування SAPI 5.1 SDK, запустіть speechsdk51.exeдля встановлення його на Ваш комп’ютер.

Тепер треба дати знати Delphi про нові об’єктиавтоматизації SAPI. Для цього запустіть Delphi 5 або 6(Я не пробував більш ранні версії) і відкрийте Project| Import Type Library. У діалозі Import Type Library виберіть “MicrosoftSpeech Object Library (Version 5.1) “. Якщо Ви не знайшли його всписку, значить під час інсталяції SAPI 5.1відбулися якісь помилки.

Delphi запропонує помістити компоненти SAPI на станицюActiveX. Я рекомендую розмістити їх в новій сторінціпід назвою “SAPI 5”, так як кількістькомпонент досить велика (19). Так само рекомендуюВам вибрати “Unit dir name” відрізняється від тієї,яка пропонується за умовчанням. Переконайтеся,що на “Generate Component Wrapper” стоїть галочка і натиснітькнопку> Install <. У діалозі Install виберіть закладку “Into new package” і вполе “File name:” введіть ім’я пакета зразок”SAPI5.dpk”, натисніть кнопку “Огляд …” (browse) іпереконайтеся, що dpk створений в тій же директорії, вякої були створені компоненти. У діалозі Install вполе Description задайте небудь опис, наприклад”SAPI 5 automation components”. Натисніть OK У підтверджуючому діалозі натисніть yes. Після цьогонові компоненти будуть встановлені. Тепер, якщо Ви подивіться в директорію, якувказали для установки компонент, то виявитетам файл SpeechLib_TLB.pas (і dcr) який містить весь кодкомпоненти (інтерфайс, константи, типи, а так самоіншу корисну інформацію). Ця директорія такж містить (якщо Ви слідували вищенаведенимінструкцій) SAPI5.dpk який є ісходінкомпакета. А тепер найцікавіша частина. Давайте створимо програму, щобуде синтезувати мова. В Delphi створіть новедодаток і помістіть на форму кнопку. Насторінці компонент SAPI5 знайдіть SpVoice і перетягнітьйого на форму. Тепер створіть подія onClick для Вашої кнопки,яке має виглядати приблизно так: procedure TForm1.Button1Click(Sender: TObject);
begin
  SpVoice1.Speak(‘Hello world!’, SVSFDefault);
end;

Запустіть програму і натисніть кнопку. Здорово?

Метод Speak об’єкта SPVoice надає доситьвеликі можливості. Ці можливості можнавикористовувати якщо погратися з другимпараметром. У наведеному вище прикладі явикористовував режим за замовчуванням, якийдозволяє функції повернути управління тількипісля завершення програвання звуку. Уникнути цього можна шляхом впровадження втекст спеціальних тегів XML.

Документація по SDK містить файл sapi.chm якийможна знайти в директорії \ Program Files \ Microsoft Speech
SDK 5.1\Docs\Help .

Sapi.chm містить досить багато інформації. Осьосновні, часто використовувані можливостікомпоненти і, відповідні їм прапори, якіпередаються у другому параметрі:
• Відтворення тексту знаходиться в файлі.
(SVSFIsFilename)
• Асинхронний вирішимо програвання звуку.Дозволяє функції повернути управління негайно,під час відтворення. (SVSFlagsAsync)
• Дозволяє управляти відтворенням через XMLтеги (див. розділ під назвою “XML TTS Tutorial”). Тегидозволяють налаштувати тональність звучання,швидкість відтворення і багато іншого. (SVSFIsXML)

Одна з цікавих речей (не документована)полягає в тому, що можна озвучуватизаголовок веб сторінки шляхом установки прапора вSVSFIsFilenam а імені файлу в URL. Якщо Ви з’єднані зінтернетом, спробуйте запустити наступнурядок:

  SpVoice1.Speak(‘http://www.o2a.com’, SVSFIsFilename);

Так само за допомогою цього прапора можна програватиwav файли:

  SpVoice1.Speak(‘C:\WINNT\MEDIA\Windows Logon Sound.wav’, SVSFIsFilename);

Насправді у цій SAPI набагато більшеможливостей, ніж я тут навів. Наступного разу,ми докладніше розглянемо інші можливості.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*