{"id":11863,"date":"2018-09-01T19:39:24","date_gmt":"2018-09-01T17:39:24","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=11863"},"modified":"2022-03-16T18:48:06","modified_gmt":"2022-03-16T17:48:06","slug":"text-to-mp3-per-java-in-10-minuten","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=11863","title":{"rendered":"Text to MP3 per Java in 10 Minuten"},"content":{"rendered":"<p>Mit Java kann man leicht aus einem Text eine MP3 Datei erstellen. Dazu braucht man sich nur einmal auf <a href=\"https:\/\/www.voicerss.org\/\/registration.aspx\" rel=\"noopener noreferrer\" target=\"_blank\">voicerss.org<\/a> anmelden und eine API-Key generieren. <\/p>\n<p>Dann einfach das Java SKD von <a href=\"https:\/\/www.voicerss.org\/\/sdk\/java.aspx\" rel=\"noopener noreferrer\" target=\"_blank\">hier<\/a> runter laden. Das Zip dann auspacken und die voicerss_tts_3.jar dem Classpath hinzuf\u00fcgen. Dann dieses Beispiel Programm ausf\u00fchren und den API-Key eintragen:<\/p>\n<pre class=\"lang:java decode:true \" >package de.wenzlaff.sound;\r\n\r\nimport java.io.FileOutputStream;\r\n\r\nimport com.voicerss.tts.AudioCodec;\r\nimport com.voicerss.tts.AudioFormat;\r\nimport com.voicerss.tts.Languages;\r\nimport com.voicerss.tts.VoiceParameters;\r\nimport com.voicerss.tts.VoiceProvider;\r\n\r\n\/**\r\n * Beispiel f\u00fcr Text to MP3 Datei.\r\n * \r\n * Lib Download von http:\/\/www.voicerss.org\/sdk\/java.aspx\r\n * \r\n * @author Thomas Wenzlaff\r\n *\r\n *\/\r\npublic class Start {\r\n\r\n\tprivate static final String TEXT = \"Hallo Thomas, das ist aber cool! Ich finde Java gut. Damit kann man sehr einfach eine MP3 Datei erstellen.\";\r\n\r\n\tprivate static final String MP3_DATEI_NAME = \"thomas-cool.mp3\";\r\n\r\n\tprivate static final String API_KEY = \"TODO API Key eintragen\";\r\n\r\n\tpublic static void main(String[] args) throws Exception {\r\n\r\n\t\ttextToMp3(TEXT, MP3_DATEI_NAME);\r\n\t}\r\n\r\n\t\/**\r\n\t * Methode erstellt eine MP3 Datei aus dem Text\r\n\t * \r\n\t * @param text      der Inhalt der MP3 Datei\r\n\t * @param dateiname der Name der MP3 Datei\r\n\t * @throws Exception bei Fehler\r\n\t *\/\r\n\tprivate static void textToMp3(String text, String dateiname) throws Exception {\r\n\t\tVoiceProvider tts = new VoiceProvider(API_KEY);\r\n\r\n\t\tVoiceParameters params = new VoiceParameters(text, Languages.German);\r\n\t\tparams.setCodec(AudioCodec.MP3);\r\n\t\tparams.setFormat(AudioFormat.Format_44KHZ.AF_44khz_16bit_mono);\r\n\t\tparams.setBase64(false);\r\n\t\tparams.setSSML(false);\r\n\t\tparams.setRate(0);\r\n\r\n\t\tbyte[] voice = tts.speech(params);\r\n\r\n\t\tFileOutputStream fos = new FileOutputStream(dateiname);\r\n\t\tfos.write(voice, 0, voice.length);\r\n\t\tfos.flush();\r\n\t\tfos.close();\r\n\t}\r\n\r\n}<\/pre>\n<p>Hier dann das Ergebnis direkt zum abspielen<\/p>\n<p><audio class=\"wp-audio-shortcode\" id=\"audio-11863-1\" preload=\"none\" style=\"width: 100%;\" controls=\"controls\"><source type=\"audio\/mpeg\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/09\/thomas-cool.mp3?_=1\" \/><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/09\/thomas-cool.mp3\">http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/09\/thomas-cool.mp3<\/a><\/audio> in deutscher Sprache und Mono.<br \/>\n<!--more--><br \/>\n<a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/09\/Bildschirmfoto-2018-09-01-um-19.34.57.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/09\/Bildschirmfoto-2018-09-01-um-19.34.57.png\" alt=\"\" width=\"353\" height=\"450\" class=\"aligncenter size-full wp-image-11865\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/09\/Bildschirmfoto-2018-09-01-um-19.34.57.png 353w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/09\/Bildschirmfoto-2018-09-01-um-19.34.57-235x300.png 235w\" sizes=\"auto, (max-width: 353px) 100vw, 353px\" \/><\/a><\/p>\n<p>Hier dann noch die Beschreibung der API und weitere <a href=\"https:\/\/www.voicerss.org\/\/sdk\/java.aspx\" rel=\"noopener noreferrer\" target=\"_blank\">Beispiele<\/a>.<\/p>\n<p>Aber auch \u00fcber URL kann der Text angesagt werden mit z.B.: <\/p>\n<pre class=\"lang:default decode:true \" >http:\/\/api.voicerss.org\/?key=KEY&amp;hl=de-de&amp;src=Hallo%20Thomas%20das%20ist%20aber%20Cool\r\n<\/pre>\n<p>Oder wer eine Live Demo testen will, <a href=\"https:\/\/www.voicerss.org\/\/api\/demo.aspx\" rel=\"noopener noreferrer\" target=\"_blank\">hier<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit Java kann man leicht aus einem Text eine MP3 Datei erstellen. Dazu braucht man sich nur einmal auf voicerss.org anmelden und eine API-Key generieren. Dann einfach das Java SKD von hier runter laden. Das Zip dann auspacken und die voicerss_tts_3.jar dem Classpath hinzuf\u00fcgen. Dann dieses Beispiel Programm ausf\u00fchren und den API-Key eintragen: package de.wenzlaff.sound; &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=11863\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eText to MP3 per Java in 10 Minuten\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[220,5,79],"tags":[2184,1787],"class_list":["post-11863","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-java","category-programmierung","tag-anleitung","tag-mp3"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/11863","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11863"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/11863\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11863"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11863"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}