diff --git a/bundles/org.openhab.voice.voicerss/src/main/java/org/openhab/voice/voicerss/internal/VoiceRSSTTSService.java b/bundles/org.openhab.voice.voicerss/src/main/java/org/openhab/voice/voicerss/internal/VoiceRSSTTSService.java index 1d89152ac..b04459ca5 100644 --- a/bundles/org.openhab.voice.voicerss/src/main/java/org/openhab/voice/voicerss/internal/VoiceRSSTTSService.java +++ b/bundles/org.openhab.voice.voicerss/src/main/java/org/openhab/voice/voicerss/internal/VoiceRSSTTSService.java @@ -217,7 +217,7 @@ public class VoiceRSSTTSService implements TTSService { case AudioFormat.CODEC_MP3: case AudioFormat.CODEC_VORBIS: case AudioFormat.CODEC_AAC: - return apiFrequency + "_" + bitDepth + "_mono"; + return apiFrequency + "_" + bitDepth + "bit_mono"; default: throw new TTSException("Unsupported audio format: " + format); } diff --git a/bundles/org.openhab.voice.voicerss/src/main/java/org/openhab/voice/voicerss/internal/cloudapi/VoiceRSSCloudImpl.java b/bundles/org.openhab.voice.voicerss/src/main/java/org/openhab/voice/voicerss/internal/cloudapi/VoiceRSSCloudImpl.java index eb30788e8..88daf7ca5 100644 --- a/bundles/org.openhab.voice.voicerss/src/main/java/org/openhab/voice/voicerss/internal/cloudapi/VoiceRSSCloudImpl.java +++ b/bundles/org.openhab.voice.voicerss/src/main/java/org/openhab/voice/voicerss/internal/cloudapi/VoiceRSSCloudImpl.java @@ -52,6 +52,9 @@ public class VoiceRSSCloudImpl implements VoiceRSSCloudAPI { public static final String DEFAULT_VOICE = "default"; + public static final String API_URL = "https://api.voicerss.org/?key=%s&hl=%s&c=%s&f=%s&src=%s"; + public static final String API_URL_WITH_VOICE = API_URL + "&v=%s"; + private final Logger logger = LoggerFactory.getLogger(VoiceRSSCloudImpl.class); private static final Set SUPPORTED_AUDIO_FORMATS = Set.of( @@ -285,12 +288,12 @@ public class VoiceRSSCloudImpl implements VoiceRSSCloudAPI { private String createURL(String apiKey, String text, String locale, String voice, String audioCodec, String audioFormat) { String encodedMsg = URLEncoder.encode(text, StandardCharsets.UTF_8); - String url = "http://api.voicerss.org/?key=" + apiKey + "&hl=" + locale + "&c=" + audioCodec + "&f=" - + audioFormat; + String url; if (!DEFAULT_VOICE.equals(voice)) { - url += "&v=" + voice; + url = String.format(API_URL_WITH_VOICE, apiKey, locale, audioCodec, audioFormat, encodedMsg, voice); + } else { + url = String.format(API_URL, apiKey, locale, audioCodec, audioFormat, encodedMsg); } - url += "&src=" + encodedMsg; return url; } }