app/src/main/java/com/example/jarvis_stts/MainActivity.kt aktualisiert
This commit is contained in:
@@ -16,17 +16,24 @@ 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 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.SpeechService
|
||||
import org.vosk.android.StorageService
|
||||
import org.vosk.android.RecognitionLi
|
||||
|
||||
class MainActivity : AppCompatActivity(), TextToSpeech.OnInitListener {
|
||||
class MainActivity : AppCompatActivity(), RecognitionListener {
|
||||
|
||||
private lateinit var tts: TextToSpeech
|
||||
private lateinit var tvStatus: TextView
|
||||
private lateinit var etUrl: EditText
|
||||
private lateinit var spinnerVoices: Spinner
|
||||
private var porcupineManager: PorcupineManager? = null
|
||||
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
|
||||
@@ -52,6 +59,46 @@ class MainActivity : AppCompatActivity(), TextToSpeech.OnInitListener {
|
||||
}
|
||||
}
|
||||
|
||||
private fun initVosk() {
|
||||
StorageService.unpack(this, "model-de", "model",
|
||||
{ model: Model ->
|
||||
voskModel = model
|
||||
startVosk()
|
||||
},
|
||||
{ exception: IOException ->
|
||||
Log.e("JARVIS", "Vosk Fehler: ${exception.message}")
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
private fun startVosk() {
|
||||
try {
|
||||
// "jarvis" als Hotword im Recognizer definieren
|
||||
val rec = Recognizer(voskModel, 16000.0f, "[\"jarvis\", \"[unk]\"]")
|
||||
voskService = SpeechService(rec, 16000.0f)
|
||||
voskService?.startListening(this)
|
||||
tvStatus.text = "Bereit (Vosk)"
|
||||
} catch (e: Exception) {
|
||||
Log.e("JARVIS", "Vosk Start Fehler: ${e.message}")
|
||||
}
|
||||
}
|
||||
|
||||
// --- RecognitionListener Methoden ---
|
||||
|
||||
override fun onPartialResult(hypothesis: String) {
|
||||
// Hier prüfen wir, ob "jarvis" im Teil-Ergebnis steht
|
||||
if (hypothesis.contains("jarvis")) {
|
||||
voskService?.stop() // Kurz Pause machen
|
||||
startSpeechRecognition() // Dein Google STT starten
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResult(hypothesis: String) { }
|
||||
override fun onFinalResult(hypothesis: String) { }
|
||||
override fun onError(exception: Exception) { }
|
||||
override fun onTimeout() { }
|
||||
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_main)
|
||||
|
||||
Reference in New Issue
Block a user