Microsoft Speech SDK
description
Transcript of Microsoft Speech SDK
Microsoft Speech SDK
Text To Speech
Autor: Damian Turula
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