Awtomatikong salin · Orihinal sa Ingles

Pagsisimula — Android

Ang speech-android ay nagbibigay ng on-device speech processing para sa Android gamit ang ONNX Runtime. Ang tubo ay tumatakbo ng VAD + STT + TTS na may suportang gabara-in, ganap na offline pagkatapos ng model download.

Mga Kahilingan

I-download ang pre-build demo app upang subukan kaagad:

Dependensiya sa Gradle

Idagdag ang SDK sa iyong build.gradle.kts:

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

Mabilis na Pasimula

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
Mahalaga

Ang default models auto-download mula sa HuggingFace sa unang paggamit (iF.500 MB kabuuang). Pagkatapos ng simulang download, ang lahat ng mga reception ay ganap na tumatakbo sa offline.

Wakas-of-turn detection

Maaring Smart Turn v3.2 kapag ang isang VAD paghinto ay dapat ituring bilang isang tanong sa halip na isang kagyat na endpoint. Ito ay nag-eeere ng huling walong segundo ng agos na ikot isang beses pagkatapos ng bawat nakumpirmang paghinto; ang isang iskor sa ibaba ng pasukan ay nananatiling bukas, habang ang maximum-sileence cap ay nagbibigay ng garantiya sa wakas na toppoinpointure.

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

Ang opt-in na ito ay nagdadagdag ng isang pindong 11.1 MB int8 model; ang confix ay nananatiling ganap na offline. Smart Turn ay nilikha ng ZXQXZ Pipecat/Daily at ipinamamahagi sa ilalim ng BSD-2-Clause.

System Voice Input (Pagkakilala)

Ang mga barkong SDK ay isang handa nang-gawa SpeechRecognitionService na nakapupuslit sa balangkas ng Androidiphers SpeechRecognizer API — walang code na isusulat. Minsang mapili ang iyong app bilang default voice celector, anumang third-party app na tumatawag SpeechRecognizer.createSpeechRecognizer(context) (Na wala ComponentName) Magkaroon ng off-device STT sa iyong pipeline.

1. Ipahayag RECORD_AUDIO at ang paglilingkod 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. Magdagdag 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. Ilagay ang serbisyo bilang system default (Settings → System → Languages & input → Voice input picker sa stock Android, o via adb):

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

4. Pare - pareho sa pamamagitan ng pagpapatakbo ng demo appiologists Pagsubok sa mga Kkilala screen, na tumatawag SpeechRecognizer.createSpeechRecognizer(ctx) (walang sangkap) at troso ang bawat balangkas na callback — kapaki-pakinabang sa pagpapatunay ng winder round-trip nang hindi nangangailangan ng logcat.

Ang mga gamit sa paglilingkod onCheckRecognitionSupport (API 33+) pagbabalik 27 BCP-47 wika Parakeet TDT v3 mga pabalat, minarkahan installedOnDeviceLanguage Minsang naroroon ang mga modelo (o pendingOnDeviceLanguage Habang ang mga ito feire downloading). ang isangudio pokus ay nakukuha na may pag-download). AUDIOFOCUS_GAIN_TRANSIENT sa haba ng isang sesyon.

Yungib

Gboard, Samsung Keyboard, at Google Assistant lot ang sarili nilang mga ident at nilalampasan ang system default. SpeechRecognizer Ang API (o magtayo ng kanilang sariling UI sa ibabaw nito) ang siyang dumadaloy sa iyong serbisyo.

Mga modelo

Ang lahat ng mga modelo ay tumatakbo sa pamamagitan ng ONNX Runtime na may NNAPI procession. INT8 na quantized sa pamamagitan ng default.

HuwaranTask Laki
Parakeet TDT v3 (INT8) Pagsasalita-to-Text (114 na wika)891 MB
Kokoro-82M (INT8)Text-to-Speech (8 wika)330 MB
Silero VAD v5Pagtukoy sa aktibidad ng boses2 MB
DeepFilterNet3 Pag - iimbak ng Ingay8 MB

Pinagmulan na kodigo: github.com/soniqo/speech-android

Susunod na mga Hakbang