From cd78b0fb93bd7e43f7fbfa79c10e862daeb54412 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" Date: Wed, 11 Mar 2026 12:13:05 +0000 Subject: [PATCH] app/src/main/java/com/example/jarvis_stts/MainActivity.kt aktualisiert --- .../com/example/jarvis_stts/MainActivity.kt | 250 ++++++------------ 1 file changed, 77 insertions(+), 173 deletions(-) diff --git a/app/src/main/java/com/example/jarvis_stts/MainActivity.kt b/app/src/main/java/com/example/jarvis_stts/MainActivity.kt index 963b514..486e71a 100644 --- a/app/src/main/java/com/example/jarvis_stts/MainActivity.kt +++ b/app/src/main/java/com/example/jarvis_stts/MainActivity.kt @@ -15,42 +15,38 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import okhttp3.* -import java.util.Locale -//import ai.picovoice.porcupine.PorcupineManager -//import ai.picovoice.porcupine.PorcupineManagerCallback -//import ai.picovoice.porcupine.Porcupine import org.vosk.Model import org.vosk.Recognizer +import org.vosk.android.RecognitionListener import org.vosk.android.SpeechService import org.vosk.android.StorageService -import org.vosk.android.RecognitionLi +import java.io.IOException +import java.util.Locale -class MainActivity : AppCompatActivity(), RecognitionListener { +class MainActivity : AppCompatActivity(), RecognitionListener, TextToSpeech.OnInitListener { + // UI Elemente + private lateinit var tvStatus: TextView + private lateinit var etUrl: EditText + private lateinit var spinnerVoices: Spinner + private lateinit var tts: TextToSpeech + + // Vosk & Netzwerk private var voskService: SpeechService? = null private var voskModel: Model? = null - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - initVosk() - } - private val client = OkHttpClient() private var webSocket: WebSocket? = null - // Liste für die Stimmen-Objekte und deren Namen + // TTS Stimmen private var availableVoices = mutableListOf() private var voiceNames = mutableListOf() + // Launcher für Google Spracherkennung private val speechRecognizerLauncher = registerForActivityResult( ActivityResultContracts.StartActivityForResult() ) { result -> - // Wenn Google fertig ist, starten wir das Wake-word wieder - try { - porcupineManager?.start() - } catch (e: Exception) { - Log.e("JARVIS", "Neustart nach Spracheingabe fehlgeschlagen: ${e.message}") - } + // Nach der Google-Eingabe starten wir Vosk wieder + startVosk() if (result.resultCode == RESULT_OK && result.data != null) { val spokenText = result.data!!.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)?.get(0) ?: "" @@ -59,7 +55,42 @@ class MainActivity : AppCompatActivity(), RecognitionListener { } } - private fun initVosk() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_main) + + // 1. UI initialisieren + tvStatus = findViewById(R.id.tvStatus) + etUrl = findViewById(R.id.etUrl) + spinnerVoices = findViewById(R.id.spinnerVoices) + val btnConnect = findViewById