Panduan Memulai
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-speech-recognition`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/speech-recognition/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Anda bisa menggunakan AI-Assisted Setup kami untuk menginstal plugin ini. Tambahkan skill Capgo ke tool AI Anda dengan command berikut:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLalu gunakan prompt berikut:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-speech-recognition` plugin in my project.Jika Anda lebih memilih Manual Setup, instal plugin dengan menjalankan perintah berikut dan ikuti petunjuk khusus platform di bawah ini:
npm install @capgo/capacitor-speech-recognitionnpx cap syncimport { SpeechRecognition } from '@capgo/capacitor-speech-recognition';Mulai cepat
Bagian berjudul “Mulai cepat”Minta akses mikrofon, lalu tempelkan partialResults listener, lalu mulai sesi dengan update streaming.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.requestPermissions();
const partialListener = await SpeechRecognition.addListener('partialResults', ({ matches }) => { setTranscript(matches?.[0] ?? '');});
await SpeechRecognition.start({ language: 'en-US', partialResults: true });
// When leaving the screen:await SpeechRecognition.stop();await partialListener.remove();Kesalahan umum
Bagian berjudul “Kesalahan umum”- Pembersihan: hapus listener saat meninggalkan layar.
- Locale: gunakan tag BCP 47 yang sesuai dengan UI Anda.
- Web: tidak didukung; gunakan API speech browser secara terpisah jika Anda butuh dikte khusus Web.
Ringkasan API
Bagian berjudul “Ikhtisar API”available
Bagian berjudul “available”Memeriksa apakah layanan speech recognition native bisa digunakan di perangkat saat ini.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.available();console.log(result);isOnDeviceRecognitionAvailable
Bagian berjudul “isOnDeviceRecognitionAvailable”Memeriksa apakah jalur pengenalan on-device yang lebih baru dari platform tersedia untuk locale yang dipilih.
Ini pengecekan kapabilitas yang harus Anda pakai sebelum mengaktifkan useOnDeviceRecognition.
A true artinya perangkat, versi OS, dan locale saat ini dapat menggunakan jalur on-device yang lebih baru untuk platform tersebut.
Mengembalikan false ketika perangkat hanya mendukung jalur recognizer legacy.
Dokumentasi platform SDK: iOS: Speech Android: SpeechRecognizer
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.isOnDeviceRecognitionAvailable();console.log(result);Mulai menangkap audio dan mentranskripsi ucapan.
Saat partialResults adalah true, promise yang dikembalikan langsung resolve dan update dialirkan melalui partialResults listener sampai sesi berakhir.
Jalur default mempertahankan perilaku recognizer lama demi kompatibilitas mundur.
Teruskan useOnDeviceRecognition: true hanya setelah memeriksa
.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.start();console.log(result);- Berhenti mendengarkan dan membebaskan native resources.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.stop();forceStop
Bagian berjudul “forceStop”Menghentikan paksa sesi saat ini.
Di Android, ini pertama-tama mencoba stop normal, lalu beralih ke destroy/recreate setelah timeout.
Di iOS, sesi saat ini dihentikan segera.
Jika transkrip parsial di-cache, transkrip tersebut dikirim melalui partialResults listener dengan forced: true.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.forceStop();getLastPartialResult
Bagian berjudul “getLastPartialResult”Mengambil hasil transkripsi parsial terakhir yang di-cache.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.getLastPartialResult();console.log(result);setPTTState
Bagian berjudul “setPTTState”Memperbarui status tombol push-to-talk saat ini.
Gunakan ini bersama dengan continuousPTT atau dengan alur hold-to-talk kustom.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.setPTTState({ held: true });getSupportedLanguages
Bagian berjudul “getSupportedLanguages”Mengambil daftar locale yang didukung oleh recognizer bawaan.
Perangkat Android 13+ tidak lagi menampilkan daftar ini; dalam kasus tersebut languages kosong.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.getSupportedLanguages();console.log(result);isListening
Bagian berjudul “isListening”Mengembalikan apakah plugin sedang aktif mendengarkan ucapan.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.isListening();console.log(result);checkPermissions
Bagian berjudul “checkPermissions”Mengambil status izin saat ini.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.checkPermissions();console.log(result);requestPermissions
Bagian berjudul “requestPermissions”Meminta izin mikrofon + pengenalan ucapan.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.requestPermissions();console.log(result);Referensi Tipe
Bagian berjudul “Referensi Tipe”SpeechRecognitionAvailability
Bagian berjudul “SpeechRecognitionAvailability”export interface SpeechRecognitionAvailability { available: boolean;}SpeechRecognitionStartOptions
Bagian berjudul “SpeechRecognitionStartOptions”Konfigurasikan perilaku recognizer saat memanggil .
export interface SpeechRecognitionStartOptions { /** * Locale identifier such as `en-US`. When omitted the device language is used. */ language?: string; /** * Maximum number of final matches returned by native APIs. Defaults to `5`. */ maxResults?: number; /** * Prompt message shown inside the Android system dialog (ignored on iOS). */ prompt?: string; /** * When `true`, Android shows the OS speech dialog instead of running inline recognition. * Defaults to `false`. */ popup?: boolean; /** * Emits partial transcription updates through the `partialResults` listener while audio is captured. */ partialResults?: boolean; /** * Enables native punctuation handling where supported (iOS 16+). */ addPunctuation?: boolean; /** * Opt in to the platform's newer on-device recognition path when available. * * On iOS 26+, this uses Apple's `SpeechAnalyzer` / `SpeechTranscriber` pipeline. * On recent Android versions, this uses the on-device `SpeechRecognizer` path. * * It is intentionally opt-in so existing apps keep the legacy flow unless they choose * to roll out the new behavior. * * Use {@link SpeechRecognitionPlugin.isOnDeviceRecognitionAvailable} before enabling it in production. * * Platform SDK docs: * iOS: [Speech](https://developer.apple.com/documentation/speech), * [SpeechAnalyzer](https://developer.apple.com/documentation/speech/speechanalyzer), * [SpeechTranscriber](https://developer.apple.com/documentation/speech/speechtranscriber) * Android: [SpeechRecognizer](https://developer.android.com/reference/android/speech/SpeechRecognizer) * * Defaults to `false`. */ useOnDeviceRecognition?: boolean; /** * Allow a number of milliseconds of silence before splitting the recognition session into segments. * Required to be greater than zero and currently supported on Android only. */ allowForSilence?: number; /** * EXPERIMENTAL: Keep a PTT session alive across silence by restarting recognition while the button stays held. * * This restart behavior is implemented for Android inline recognition and iOS native recognition. */ continuousPTT?: boolean;}SpeechRecognitionMatches
Bagian berjudul “SpeechRecognitionMatches”export interface SpeechRecognitionMatches { matches?: string[];}ForceStopOptions
Bagian berjudul “ForceStopOptions”Opsi untuk .
export interface ForceStopOptions { /** * Android only: timeout in milliseconds before forcing stop via destroy/recreate. * * On iOS, the current session is stopped immediately and this value is ignored. * * Defaults to `1500`. */ timeout?: number;}LastPartialResult
Bagian berjudul “LastPartialResult”Hasil dari .
export interface LastPartialResult { /** * Whether a partial result is currently cached. */ available: boolean; /** * The most recent transcript text known to the native recognizer. */ text: string; /** * All current match alternatives when available. */ matches?: string[];}PTTStateOptions
Bagian berjudul “PTTStateOptions”Opsi untuk .
export interface PTTStateOptions { /** * Whether the PTT button is currently held. */ held: boolean;}SpeechRecognitionLanguages
Bagian berjudul “SpeechRecognitionLanguages”export interface SpeechRecognitionLanguages { languages: string[];}SpeechRecognitionListening
Bagian berjudul “SpeechRecognitionListening”export interface SpeechRecognitionListening { listening: boolean;}SpeechRecognitionPermissionStatus
Bagian berjudul “SpeechRecognitionPermissionStatus”Map izin yang dikembalikan oleh checkPermissions dan requestPermissions.
export interface SpeechRecognitionPermissionStatus { speechRecognition: PermissionState;}SpeechRecognitionSegmentResultEvent
Bagian berjudul “SpeechRecognitionSegmentResultEvent”Dipicu setiap kali hasil tersegmentasi dihasilkan (hanya Android).
export interface SpeechRecognitionSegmentResultEvent { matches: string[];}SpeechRecognitionPartialResultEvent
Bagian berjudul “SpeechRecognitionPartialResultEvent”Dipicu setiap kali transkripsi parsial dihasilkan.
export interface SpeechRecognitionPartialResultEvent { /** * Current recognition matches when the native recognizer reports them. * * This can be omitted for forced or accumulated-only payloads. */ matches?: string[]; /** * Accumulated transcription from earlier continuous PTT cycles. */ accumulated?: string; /** * Final accumulated text including the current result. */ accumulatedText?: string; /** * `true` when the plugin is restarting recognition inside a continuous PTT session. */ isRestarting?: boolean; /** * `true` when the payload was emitted by `forceStop()`. */ forced?: boolean;}SpeechRecognitionListeningEvent
Bagian berjudul “SpeechRecognitionListeningEvent”Dipicu saat status listening berubah.
export interface SpeechRecognitionListeningEvent { /** * Finite state of the recognition session. */ state?: ListeningFiniteState; /** * Unique identifier for the current listening session. */ sessionId?: number; /** * Why this state transition occurred. */ reason?: ListeningReason; /** * Error code when the transition is caused by an error. */ errorCode?: string; /** * Backward-compatible binary state used by earlier releases. */ status?: 'started' | 'stopped';}Sumber Kebenaran
Bagian berjudul “Sumber Kebenaran”Halaman ini dibuat dari plugin src/definitions.ts. Jalankan ulang sync saat API publik berubah di upstream.
Lanjutkan dari Getting Started
Bagian berjudul “Lanjutkan dari Getting Started”Jika Anda menggunakan Panduan Memulai untuk merencanakan operasi dashboard dan API, hubungkan dengan Menggunakan @capgo/capacitor-speech-recognition untuk kemampuan native dalam Menggunakan @capgo/capacitor-speech-recognition, Ringkasan API untuk detail implementasi di API Overview, Pendahuluan untuk detail implementasi di Introduction, Kunci API untuk detail implementasi di API Keys, dan Perangkat untuk detail implementasi di Devices.