Search in sources :

Example 1 with KSService

use of org.eclipse.smarthome.core.voice.KSService in project smarthome by eclipse.

the class VoiceManagerImpl method startDialog.

@Override
public void startDialog(KSService ksService, STTService sttService, TTSService ttsService, HumanLanguageInterpreter interpreter, AudioSource audioSource, AudioSink audioSink, Locale locale, String keyword, String listeningItem) {
    // use defaults, if null
    KSService ks = (ksService == null) ? getKS() : ksService;
    STTService stt = (sttService == null) ? getSTT() : sttService;
    TTSService tts = (ttsService == null) ? getTTS() : ttsService;
    HumanLanguageInterpreter hli = (interpreter == null) ? getHLI() : interpreter;
    AudioSource source = (audioSource == null) ? audioManager.getSource() : audioSource;
    AudioSink sink = (audioSink == null) ? audioManager.getSink() : audioSink;
    Locale loc = (locale == null) ? localeProvider.getLocale() : locale;
    String kw = (keyword == null) ? this.keyword : keyword;
    String item = (listeningItem == null) ? this.listeningItem : listeningItem;
    if (ks != null && stt != null && tts != null && hli != null && source != null && sink != null && loc != null && kw != null) {
        DialogProcessor processor = new DialogProcessor(ks, stt, tts, hli, source, sink, loc, kw, item, this.eventPublisher);
        processor.start();
    } else {
        String msg = "Cannot start dialog as services are missing.";
        logger.error(msg);
        throw new IllegalStateException(msg);
    }
}
Also used : AudioSource(org.eclipse.smarthome.core.audio.AudioSource) AudioSink(org.eclipse.smarthome.core.audio.AudioSink) Locale(java.util.Locale) STTService(org.eclipse.smarthome.core.voice.STTService) KSService(org.eclipse.smarthome.core.voice.KSService) TTSService(org.eclipse.smarthome.core.voice.TTSService) HumanLanguageInterpreter(org.eclipse.smarthome.core.voice.text.HumanLanguageInterpreter)

Example 2 with KSService

use of org.eclipse.smarthome.core.voice.KSService in project smarthome by eclipse.

the class VoiceManagerImpl method getParameterOptions.

@Override
public Collection<ParameterOption> getParameterOptions(URI uri, String param, Locale locale) {
    if (uri.toString().equals(CONFIG_URI)) {
        if (CONFIG_DEFAULT_HLI.equals(param)) {
            List<ParameterOption> options = new ArrayList<>();
            for (HumanLanguageInterpreter hli : humanLanguageInterpreters.values()) {
                ParameterOption option = new ParameterOption(hli.getId(), hli.getLabel(locale));
                options.add(option);
            }
            return options;
        } else if (CONFIG_DEFAULT_KS.equals(param)) {
            List<ParameterOption> options = new ArrayList<>();
            for (KSService ks : ksServices.values()) {
                ParameterOption option = new ParameterOption(ks.getId(), ks.getLabel(locale));
                options.add(option);
            }
            return options;
        } else if (CONFIG_DEFAULT_STT.equals(param)) {
            List<ParameterOption> options = new ArrayList<>();
            for (STTService stt : sttServices.values()) {
                ParameterOption option = new ParameterOption(stt.getId(), stt.getLabel(locale));
                options.add(option);
            }
            return options;
        } else if (CONFIG_DEFAULT_TTS.equals(param)) {
            List<ParameterOption> options = new ArrayList<>();
            for (TTSService tts : ttsServices.values()) {
                ParameterOption option = new ParameterOption(tts.getId(), tts.getLabel(locale));
                options.add(option);
            }
            return options;
        } else if (CONFIG_DEFAULT_VOICE.equals(param)) {
            List<ParameterOption> options = new ArrayList<>();
            for (Voice voice : getAllVoices()) {
                ParameterOption option = new ParameterOption(voice.getUID(), voice.getLabel() + " - " + voice.getLocale().getDisplayName());
                options.add(option);
            }
            return options;
        }
    }
    return null;
}
Also used : STTService(org.eclipse.smarthome.core.voice.STTService) ParameterOption(org.eclipse.smarthome.config.core.ParameterOption) KSService(org.eclipse.smarthome.core.voice.KSService) ArrayList(java.util.ArrayList) HumanLanguageInterpreter(org.eclipse.smarthome.core.voice.text.HumanLanguageInterpreter) TTSService(org.eclipse.smarthome.core.voice.TTSService) ArrayList(java.util.ArrayList) List(java.util.List) Voice(org.eclipse.smarthome.core.voice.Voice)

Aggregations

KSService (org.eclipse.smarthome.core.voice.KSService)2 STTService (org.eclipse.smarthome.core.voice.STTService)2 TTSService (org.eclipse.smarthome.core.voice.TTSService)2 HumanLanguageInterpreter (org.eclipse.smarthome.core.voice.text.HumanLanguageInterpreter)2 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Locale (java.util.Locale)1 ParameterOption (org.eclipse.smarthome.config.core.ParameterOption)1 AudioSink (org.eclipse.smarthome.core.audio.AudioSink)1 AudioSource (org.eclipse.smarthome.core.audio.AudioSource)1 Voice (org.eclipse.smarthome.core.voice.Voice)1