Terjemahan mesin · Versi asli bahasa Inggris

Mulai - Android

speech-android menyediakan pemrosesan bicara on-device untuk Android memakai ONNX RuntimeJalur pipa berjalan VAD + STT + TTS dengan barge- mendukung, sepenuhnya offline setelah model download.

Permintaan

Unduh aplikasi demo pre- built untuk segera dicoba:

Dependensi Gradle

Tambahkan SDK ke build.gradle.kts:

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

Cepat Mulai

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
Penting

Model baku auto- download dari HuggingFace pada penggunaan pertama (~ 500 MB total). Setelah download awal, semua kesimpulan berjalan sepenuhnya offline.

End-of -turn deteksi

Aktifkan Smart Turn v3.2 ketika sebuah VAD jeda harus diperlakukan sebagai sebuah pertanyaan daripada sebuah titik akhir langsung. Ini mencetak delapan detik terakhir dari putaran saat ini sekali setelah setiap konfirmasi jeda; skor di bawah ambang pintu terus giliran yang sama terbuka, sedangkan cap sileng memberikan jaminan akhir akhirnya.

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

Pilihan ini menambahkan satu disematkan 11.1 MB int8 model; inferensi masih sepenuhnya offline. Smart Turn dibuat oleh Pipecat / Harian dan didistribusikan di bawah BSD-2-Clause.

Masukan Suara Sistem (Jasa Pemulihan)

Kapal SDK sudah dibuat. SpeechRecognitionService yang plugs ke dalam framework Android SpeechRecognizer API - tidak ada kode untuk ditulis. Setelah aplikasi anda dipilih sebagai pengidentifikasi suara baku, aplikasi pihak ketiga manapun yang memanggil SpeechRecognizer.createSpeechRecognizer(context) (dengan tidak ComponentName) mendapat sepenuhnya on-perangkat STT melalui pipa Anda.

1. Declare RECORD_AUDIO dan layanan di 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. Tambah 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. Atur layanan sebagai sistem baku (Pengaturan Sistem Sistim Affizages & masukan input Aby Voice picker pada stok Android, atau melalui adb):

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

4. Verifikasi dengan menjalankan aplikasi demo Tes pengenalan layar, yang memanggil SpeechRecognizer.createSpeechRecognizer(ctx) (tidak ada komponen) dan log setiap kerangka kerja callback - berguna untuk mengkonfirmasikan putaran binder tanpa membutuhkan logcat.

Aplikasi layanan onCheckRecognitionSupport (API 33+) mengembalikan 27 BCP-47 bahasa Parakeet TDT v3 cover, ditandai installedOnDeviceLanguage model sekali hadir (atau pendingOnDeviceLanguage ketika mereka men-download). Fokus audio diperoleh dengan AUDIOFOCUS_GAIN_TRANSIENT selama durasi sesi.

Caveat

Gboard, Samsung Keyboard, and Google Assistant bundle their own recogners and skip the system default. Apps that explically call the framework SpeechRecognizer API (atau membangun UI mereka sendiri di atasnya) adalah orang-orang yang mengalir melalui layanan Anda.

Model

Semua model dijalankan melalui ONNX Runtime dengan akselerasi NNAPI. INT8 diukur secara baku.

ModelTugasUkuran
Parakeet TDT v3 (INT8)Speech-to-Text (114 bahasa)891 MB
Kokoro-82M (INT8)Teks -to- Pidato (8 bahasa)330 MB
Silero VAD v5Deteksi aktivitas suara2 MB
DeepFilterNet3Cancellation Suara8 MB

Kode sumber: gitub.com /soniqo/speech-android

Langkah Berikutnya