Microsoft Speech SDK Text To Speech
Autor: Damian TurulaMicrosoft Speech SDK Text To Speech
Autor: Damian Turula
Microsoft Speech SDK Text To Speech
Autor: Damian Turula
Microsoft Speech SDK Text To Speech
Autor: Damian Turula
Plan Prezentacji
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)
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
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 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 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. 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 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 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
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. 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 Jaką flagę trzeba ustawić by ISpVoice::Speak czytało z pliku .txt
Jak się nazywa standardowy głos TTS w Windows 7
Comments