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
- Android 8+ (API 26)
- arm64-v8a arsitektur
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
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.
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.
| Model | Tugas | Ukuran |
|---|---|---|
| Parakeet TDT v3 (INT8) | Speech-to-Text (114 bahasa) | 891 MB |
| Kokoro-82M (INT8) | Teks -to- Pidato (8 bahasa) | 330 MB |
| Silero VAD v5 | Deteksi aktivitas suara | 2 MB |
| DeepFilterNet3 | Cancellation Suara | 8 MB |
Kode sumber: gitub.com /soniqo/speech-android
Langkah Berikutnya
- Benchmarks — Android performa referensi
- Linux C API - embedded Linux setup