Konekäännös · Englanninkielinen alkuperäinen
Aloittaminen Android
speech-android tarjoaa laitteen puheenkäsittelyn Android käyttäen ONNX Runtime.Puhelin kulkee VAD + STT + TTS proomutuki, täysin pois päältä mallin latauksen jälkeen.
Vaatimukset
- Android 8+ (API 26)
- arm64-v8a arkkitehtuuri
Lataa valmiiksi rakennettu demo sovellus kokeilla sitä välittömästi:
Gradlen riippuvuus
Lisää SDK omaan build.gradle.kts:
implementation("audio.soniqo:speech:0.0.20")
Pikakäynnistys
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
Oletusmallit ladataan automaattisesti HuggingFace ensimmäisessä käytössä (~500 MB yhteensä). Alun latauksen jälkeen kaikki päätelmät toimivat täysin offline-tilassa.
Kääntyneisyyden toteaminen
Käytä Smart Turn v3.2 kun VAD -taukoa on käsiteltävä kysymyksenä eikä välittömänä päätepisteenä. Se tekee pisteet nykyisen käännöksen viimeiset kahdeksan sekuntia kerran kunkin vahvistetun tauon jälkeen; pisteet kynnyksen alapuolella pitävät saman käännön auki, kun taas maksimihiljaisuuskatto takaa lopullisen päätepisteen.
val modelDir = ModelManager.ensureModels(context, enableSmartTurn = true)
val pipeline = SpeechPipeline(
SpeechConfig(
modelDir = modelDir,
enableSmartTurn = true,
turnCompletionThreshold = 0.5f,
turnCompletionMaxSilenceSec = 2.0f,
)
)
Tämä opt-in lisää yhden naulatun 11,1 MB int8 -mallin. Päätelmä pysyy täysin offline-tilassa. Smart Turn on luotu pipecat/Pipecat / Daily -mallin avulla, ja se jakautuu alle BSD-2-Clause.
Järjestelmän äänisyöte (Tunnistuspalvelu)
SDK-alus on valmis. SpeechRecognitionService joka kytkee Android... SpeechRecognizer API . Ei koodia kirjoitettavaksi. Kun sovelluksesi on valittu oletusäänentunnistimeksi, mikä tahansa kolmannen osapuolen sovellus soittaa SpeechRecognizer.createSpeechRecognizer(context) (ei ComponentName) saa täysin päälle-laite STT kautta putkisto.
1. Julista RECORD_AUDIO ja palvelu 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. Lisää 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. Aseta palvelu järjestelmän oletusarvoksi (Asetukset → Järjestelmä → Kielet ja syöte → Äänisyötön kerääjä varastossa Android tai adb:n kautta):
adb shell settings put secure voice_recognition_service \
your.package/audio.soniqo.speech.service.SpeechRecognitionService
4. Varmistamalla demosovelluksen Recognizer test screen, joka kutsuu SpeechRecognizer.createSpeechRecognizer(ctx) (ei komponenttia) ja kirjautuu jokaiseen kehystoistoon.
Palvelussa käytetään onCheckRecognitionSupport (API 33+) palauttamalla 27 BCP-47 kielet Parakeet TDT v3 kattaa, merkitty installedOnDeviceLanguage kun malleja on olemassa (tai pendingOnDeviceLanguage kun ne ladataan uudelleen).Äänen tarkennetaan AUDIOFOCUS_GAIN_TRANSIENT istunnon ajaksi.
Gboard, Samsung Näppäimistö ja Google Assistant nippuvat omat tunnistimet ja ohittavat järjestelmän oletuksen. Sovellukset, jotka nimenomaisesti kutsuvat kehystä SpeechRecognizer API (tai rakentavat oman käyttöliittymänsä päälle) ovat niitä, jotka kulkevat palvelusi läpi.
Mallit
Kaikki mallit suoritetaan ONNX Runtime -menetelmällä, jossa NNAPI-kiihtyvyys on INT8 -määräytyy oletusarvoisesti.
| Malli | Tehtävä | Koko |
|---|---|---|
| Parakeet TDT v3 (INT8) | Puhe-to-Text (114 kieltä) | 891 Mt |
| Kokoro-82M (INT8) | Text-to-Speech (8 kieltä) | 330 Mt |
| Silero VAD v5 | Puheaktiivisuuden tunnistus | 2 Mt |
| DeepFilterNet3 | Melun peruuttaminen | 8 Mt |
Lähdekoodi: github.com/soniqo/speech-android
Seuraavat vaiheet
- Perusmerkit ... Android
- Linux C API Linux: n asennus