140 likes | 329 Views
Text To Speech Autor: Damian Turula. Microsoft Speech SDK. Plan Prezentacji. Microsoft Speech API 5.4 (SAPI 5.4) Czym jest Text To Speech Microsoft Voices Text To Speech w SAPI 5.4 (Windows 7) Omówienie niektórych dostępnych metod Koniec (+ pytania na kolokwium). Microsoft Speech API 5.4.
E N D
Text To Speech Autor: Damian Turula Microsoft Speech SDK
Plan Prezentacji • Microsoft Speech API 5.4 (SAPI 5.4) • Czym jest Text To Speech • Microsoft Voices • Text To Speech w SAPI 5.4 (Windows 7) • Omówienie niektórych dostępnych metod • Koniec (+ pytania na kolokwium)
Microsoft Speech API 5.4 • SAPI 5.4 jest jedynie zaktualizowaną wersją SAPI 5.3 spod Windows Vista wbudowaną w Windows 7. Od tej pory jest częścią Windows SDK • Wersja 5.3 Wprowadza wsparcie dla W3C XML speech grammars for recognition and synthesis. Innymi słowy wprowadza możliwość ustalania cech głosu takich jak szybkość, głośność, wysokość, wymowę. • Wprowadzona zostaje wersja 8 silnika do rozpoznawania mowy
Text To Speech • Text To Speech – Jest to część Microsoft Speech SDK odpowiedzialna za syntezę mowy. Wykorzystując dostępne metody jesteśmy w stanie „przeczytać“ tekst bądź zawartość pliku tekstowego który chcemy usłyszeć. Wykorzystuje się do tego któryś z dostępnych głosów dostarczanych przez Microsoft.
Microsoft Voices • Microsoft Sam – Domyślny męski głos w Microsoft Windows XP • Microsoft Mike and Mary – opcjonalne głosy męski i damski, do ściągnięcia ze strony Microsoftu. • Wszystkie z 3 powyższych nie działają dla Windows Vista i nowszych systemów. • Microsoft Anna – dostępna jedynie w Speech SDK 5.x jest domyślnym, damskim głosem w Windows Vista i 7 • Microsoft Lili – Chiński głos dostępny w chińskiej wersji językowej Windows Vista i wyżej. Dostępny dla innych wersji językowych jeśli używamy Windows Vista/7 wersję Ultimate • Microsoft David(male), Hazel(female), Zera(female) – nowe głosy dostępne dla Text to Speech w Windows 8
TTS w SAPI 5.4 • Aplikacje wykorzystują Text To Speech korzystając z interfejsu ISpVoice COM. Po stworzeniu obiektu ISpVoice wystarczy wywołać metodę ISpVoice::Speak by wygenerować prosty output z tekstu. • Interfejs ISpVoice dostarcza szereg metod do zmian pewnych ustawień takich jak głośność, szybkość odtwarzania a także możliwość wyboru głosu. • Ponadto jest możliwość wrzucania w tekst znaczników XML do zmian niektórych parametrów w trakcie przetwarzania.
ISpVoice::Speak • HRESULT Speak( LPCWSTR *pwcs, DWORD dwFlags, ULONG *pulStreamNumber); • *pwcs – tekst który ma zostać zamieniony na mowę • dwFlags – flagi modyfikujące sposób w jaki przeprowadzana jest synteza, przykłady flag: • SPF_ASYNC – sprawia, że wywołanie metody Speak jest asynchroniczne • SPF_IS_FILENAME – determinuje, że *pwcs jest ścieżką do pliku tekstowego, który ma zostać przetworzony • SPF_PURGEBEFORESTREAM – czyści wszystkie zapytania z kolejki pozostawiając tylko to • *pulStreamNumber – wskaźnik na ULONG do którego zostanie zwrócony numer strumienia skojarzony z tym zapytaniem
ISpVoice::Pause • HRESULT Pause ( void ); • Zwiększa licznik Pauzy, jeśli jest większy od 0 to przetwarzanie jest wstrzymane. • Zawołane gdy przetwarzanie jest wstrzymane, będzie się sumować, i zostanie zdjęte dopiero, gdy metoda ISpVoice::Resume zostanie zawołana dokładnie taką samą ilość razy
ISpVoice::Resume • HRESULT Resume ( void ); • zmniejsza licznik pauzy, który jest zwiększany przez metodę ISpVoice::Pause • Przetwarzanie jest wznawiane gdy licznik pauzy zejdzie do 0
ISpVoice::Skip HRESULT Skip( LPCWSTR *pItemType, • long lNumItems, ULONG *pulNumSkipped); • *pItemType – określa typ elementu, jaki ma być pomijany • Obecnie wspierany jest tylko „SENTENCE“ • lNumItems – określa liczbę elementów do pominięcia • >0 – przesuwa do przodu względem obecnej pozycji • <0 – cofa względem obecnej pozycji • 0 – cofa do początku obecnego elementu • *pulNumSkipped – wskaźnik na element typu ULONG do którego zwracana jest liczba ominiętych elementów
ISpVoice::SetRate • HRESULT SetRate( long RateAdjust); • RateAdjust – Wartość określająca tempo mówienia. Wspierane są wartości z zakresu -10 do +10 • Można to regulować za pomocą tej metody, jak i wklejając w tekst znacznik XML
ISpVoice::SetVolume • HRESULT SetVolume(USHORT usVolume); • usVolume – wartość określająca poziom dźwięku jaki chcemy ustawić • Wartość z zakresu 0 – 100 określająca procentowo poziom dźwięku względem obecnego
ISpVoice::SetVoice • HRESULT SetVoice( ISpObjectToken *pToken); • *pToken – wskaźnik na Token opisujący głos, który chcemy wybrać • w przypadku NULL użyty zostanie domyślny głos
Pytania na kolokwium • Jaką flagę trzeba ustawić by ISpVoice::Speak czytało z pliku .txt • Jak się nazywa standardowy głos TTS w Windows 7