Witam
Potrzebuje Waszej pomocy.
Chciałem napisać aplikację ,która konwertuje tekst na plik mp3.
Wszystko fajnie działa (tekst jest konwertowany na mp3) jeśli zakładam ,że jeden plik będzie czytany przez jeden głos.
Potrzebuje zmodyfikować program tak ,żeby można było podać jako parametr jeden tekst ,który będzie czytany lecz może być czytany przez kilka głosów tzn np jako parametr podaje "Dzień Dobry" i chce żeby "Dzień" było czytane innym głosem niż "Dobry".
Można to zrobić za pomocą ssml.
Wydaję mi się ,że problem tkwi w tym ,że aplikacja nie wyłapuje ze zmiennej "tekst" voiców...
Możę ktoś pracował z syntezatorem i będzie w stanie pomóc...
Poniżej dodaje kod.
public static void main(String[] args) throws Exception {
init();
String text = "<?xml version=\"1.0\"?>\n" +
"<speak xmlns=\"http://www.w3.org/2001/10/synthesis\"\n" +
" xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n" +
" version=\"1.0\">\n" +
" <metadata>\n" +
" <dc:title xml:lang=\"pl-PL\">Telephone Menu: Level 1</dc:title>\n" +
" </metadata>\n" +
"\n" +
" <p>\n" +
" <s xml:lang=\"pl-PL\">\n" +
" <voice name=\"Jacek\" gender=\"male\" age=\"25\">\n" +
" Jestem Jacek\n" +
" </voice>\n" +
" </s>\n" +
" <s xml:lang=\"pl-PL\">\n" +
" <voice name=\"Ewa\" gender=\"male\" age=\"25\">\n" +
" Jestem Ewa.\n" +
" </voice>\n" +
" </s>\n" +
" </p>\n" +
"\n" +
"</speak>";
// String voiceInput ="Jacek";//args[0];
String outputFileName = "C:/Users/User/Desktop/Nowy folder/kuba.mp3";
CreateSpeechRequest createSpeechRequest = new CreateSpeechRequest();
Input input = new Input();
Voice voice = new Voice();
// voice.setName(voiceInput);
input.setData(text);
input.setType("application/ssml+xml");
createSpeechRequest.setInput(input);
createSpeechRequest.setVoice(voice);
InputStream in = null;
FileOutputStream outputStream = null;
try {
CreateSpeechResult createSpeechResult = speechCloud.createSpeech(createSpeechRequest);
in = createSpeechResult.getBody();
outputStream = new FileOutputStream(new File(outputFileName));
byte[] buffer = new byte[2 * 1024];
int readBytes;
while ((readBytes = in.read(buffer)) > 0) {
outputStream.write(buffer, 0, readBytes);
}
System.out.println("\nFile saved: " + outputFileName);
System.out.println(text);
} finally {
if (in != null) {
in.close();
}
if (outputStream != null) {
outputStream.close();
}
}
}
}
```