piątek, 28 listopada 2014

Konwersja tekstu na mowę (2 z 2)

Kontynuując poprzedni wpis dot. konwersji tekstu na mowę zaprezentuję sposób wykonania tej operacji z innej niż Excel aplikacji z pakietu Office. Istnieją dwa sposoby rozwiązania tego problemu.

Wariant A. Odczyt paragrafu z aplikacji MS Word z wykorzystaniem Excela.
W tym wariancie wystarczy z poziomu aplikacji MS Word utworzyć referencję do aplikacji Excel (dla prostoty działania z wykorzystaniem wiązania późnego) a następnie wykorzystać obiekt Speech dostępny w Excelu. Poniższy kod prezentuje takie właśnie działanie. Co ważne, nie musimy wyświetlać aplikacji Excel przez co osoba postronna nie zorientuje się, że odczyt następuje z poziomu innej niż Word aplikacji.

01Sub Czytaj_Text_Z_Pomocą_Excela()
02 
03    Dim xlApp As Object
04    Set xlApp = CreateObject("Excel.Application")
05     
06    xlApp.speech.Speak ActiveDocument.Paragraphs(1).Range.Text
07   
08    xlApp.Quit
09    Set xlApp = Nothing
10End Sub

Wariant B. Wykorzystanie zewnętrznej biblioteki do odczytu tekstu
W tym wariancie wykorzystamy bibliotekę o nazwie Microsoft Speech Object Library, do której należy ustawić odpowiednią referencję w Menu >> Tools >>References... Biblioteka ta daje nam dostęp do rozszerzonej wersji generatora mowy. Dzięki szeregu właściwości i metod możemy wpłynąć na jakość dźwięku czy też wybrać odpowiedni język i głos (o ile biblioteka posiada odpowiednie dodatkowe zestawy głosów i języków).
Prosty przykład wykorzystania w/w biblioteki w celu odczytania pierwszego paragrafu z dokumentu MS Word przedstawia poniższa procedura:

1Sub Speech_FromFile_Example()
2 
3Dim testVoice As SpVoice
4Set testVoice = New SpVoice
5 
6    testVoice.Speak ActiveDocument.Paragraphs(1).Range.Text
7 
8End Sub

Po dodatkowe informacje odsyłam do strony MSDN poświęconej tej bibliotece.

Brak komentarzy:

Prześlij komentarz