Maskinoversættelse · Engelsk original

Kom i gang - Android

speech-android giver on- enhed tale behandling til Android ved hjælp af ONNX Runtime. Rørledningen kører VAD + STT + TTS med barg- i støtte, helt offline efter model download.

Krav

Download den præ- byggede demo app til at prøve det med det samme:

Gradleafhængighed

Tilføj SDK til din build.gradle.kts:

implementation("audio.soniqo:speech:0.0.20")

Hurtig start

val modelDir = ModelManager.ensureModels(context)
val pipeline = SpeechPipeline(SpeechConfig(modelDir = modelDir))
pipeline.events.collect { event ->
    when (event) {
        is SpeechEvent.TranscriptionCompleted -> println(event.text)
        is SpeechEvent.ResponseDone -> pipeline.resumeListening()
        else -> {}
    }
}
pipeline.start()
pipeline.pushAudio(samples) // 16kHz mono float32
Vigtigt

Standardmodellerne automatisk download fra HuggingFace ved første brug (~ 500 i alt). Efter den første download kører alle inferens helt offline.

Ende- of- turn detektering

Aktivér Smart Turn v3.2 når en VAD pause skal behandles som et spørgsmål i stedet for et umiddelbart endpoint. Den scorer de sidste otte sekunder af den aktuelle drejning én gang efter hver bekræftet pause; en score under tærsklen holder den samme tur åben, mens maximum-stilhed cap garanterer en eventuel endpoint.

val modelDir = ModelManager.ensureModels(context, enableSmartTurn = true)
val pipeline = SpeechPipeline(
    SpeechConfig(
        modelDir = modelDir,
        enableSmartTurn = true,
        turnCompletionThreshold = 0.5f,
        turnCompletionMaxSilenceSec = 2.0f,
    )
)

Denne opt- in tilføjer en fastspændt 11.1 MB int8 model; inferens forbliver helt offline. Smart Turn blev oprettet af Pipecat / Daily og distribueres under BSD-2-Clause.

Systemstemme (Anerkendelse)

SDK skibe en ready- made SpeechRecognitionService at stikkene i Android 's rammer SpeechRecognizer API - ingen kode at skrive. Når din app er valgt som standard stemme genkendelsesfil, enhver tredjeparts app kalder SpeechRecognizer.createSpeechRecognizer(context) (med ng ComponentName) får fuld on- enhed STT gennem din rørledning.

1. Declare RECORD_AUDIO og service i AndroidManifest.xml:

<uses-permission android:name="android.permission.RECORD_AUDIO" />

<application>
    <service
        android:name="audio.soniqo.speech.service.SpeechRecognitionService"
        android:exported="true"
        android:permission="android.permission.RECORD_AUDIO">
        <intent-filter>
            <action android:name="android.speech.RecognitionService" />
        </intent-filter>
        <meta-data
            android:name="android.speech"
            android:resource="@xml/recognition_service" />
    </service>
</application>

2. Tilføj app/src/main/res/xml/recognition_service.xml:

<?xml version="1.0" encoding="utf-8"?>
<recognition-service xmlns:android="http://schemas.android.com/apk/res/android" />

3. Indstil tjenesten som systemets standard (Opsætning → System → Sprog & input → Stemmeindgangsvælger på lager Android, eller via adb):

adb shell settings put secure voice_recognition_service \
  your.package/audio.soniqo.speech.service.SpeechRecognitionService

4. Verificér ved at køre demo-appens Genkendelsesprøvning skærm, som kalder SpeechRecognizer.createSpeechRecognizer(ctx) (ingen komponent) og logger hver ramme callback - nyttigt til at bekræfte ringbind rundtur uden brug af logcat.

Tjenesten gennemfører onCheckRecognitionSupport (API 33+) om tilbagelevering af 27 BCP-47 sprog Parakeet TDT v3 omslag, markeret installedOnDeviceLanguage når der er modeller til stede (eller pendingOnDeviceLanguage mens de downloader). Audio fokus er erhvervet med AUDIOFOCUS_GAIN_TRANSIENT under en session.

Caveat

Gboard, Samsung Tastatur, og Google Assistant bundt deres egne genkendere og springe systemet standard. Apps, der udtrykkeligt kalder rammerne SpeechRecognizer API (eller bygge deres egen UI på toppen af det) er dem, der flyder gennem din service.

Modeller

Alle modeller kører via ONNX Runtime med NNAPI acceleration. INT8 kvantificeret som standard.

ModelOpgaveStørrelse
Parakeet TDT v3 (INT8)Speech- to- Text (114 sprog)891 MB
Kokoro-82M (INT8)Tekst- to- tale (8 sprog)330 MB
Silero VAD v5Registrering af taleaktivitet2 MB
DeepFilterNet3Støjaflysning8 MB

Kilde: github.com /soniqo/speech-android

Næste skridt