Witam, właśnie próbuję napisać aplikacje, która tworzyłaby ścieżkę dźwiękową lektora na podstawie napisów do filmu.
Póki co próbuję wykorzystać w tym celu klasę http://msdn.microsoft.com/en-us/library/system.speech.synthesis.speechsynthesizer.aspx oraz syntezator mowy Ivona 2 głos Jacek :)
I niby czytanie wybranego tekstu jest banalne:
SpeechSynthesizer synth = new SpeechSynthesizer();
synth.SetOutputToDefaultAudioDevice();
synth.SelectVoice("Ivona 2 Jacek");
synth.Speak("Tekst do odczytania.");
Da się też to łatwo zapisać do pliku .wav:
synth.SetOutputToWaveFile("E:\test.wav");
synth.Speak("Tekst do odczytania.");
synth.SetOutputToDefaultAudioDevice();
Ale jak czytać napisy? Główny problem to czas:
- jak czytać kolejne linijki w określony czasie?
- jak stworzyć tą "głuchą przestrzeń" miedzy nim?
Załóżmy, że mamy napisy takiego formatu:
00:02:54:Gdzie podziała się duma posiadania?|Gdzie?
00:02:58:Gdzie obsługa klienta?
00:03:07:Rozumiesz o czym mówię?
Stworzenie 4 (00:02:58-00:02:54) sekundowej
synth.Pause()
między 1. a 2. linijką odpada, bo przeczytanie 1. linijki też zajmuje jakiś czas.
Kombinuję, ale nic nie mogę wymyślić, może coś podpowiecie?