시작하기
이 플러그인의 설치 단계 및 전체 마크다운 가이드가 포함된 설정 지시를 복사하세요.
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.
설치
설치bun add @capgo/capacitor-speech-recognitionbunx cap sync수입
수입import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';API 개요
API 개요available
사용 가능한__CAPGO_KEEP_1__은 현재 장치에서 사용할 수 있는 네이티브 음성 인식 서비스가 있는지 확인합니다.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.available();isOnDeviceRecognitionAvailable
__CAPGO_KEEP_2__선택한 지역의 플랫폼에서 사용할 수 있는 최신 장치 내 인식 경로가 있는지 확인합니다.
이 기능을 사용하기 전에 사용해야 하는 기능 체크입니다. useOnDeviceRecognition.
A true 결과가 'A'이면 현재 장치, OS 버전 및 지역이 해당 플랫폼에서 최신 장치 내 경로를 사용할 수 있습니다.
리턴 false 장치가 오래된 인식기 경로만 지원할 때 리턴
플랫폼 SDK 문서: iOS: Speech Android:
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.isOnDeviceRecognitionAvailable();start
클립보드에 복사음성 녹음과 음성 인식을 시작합니다.
When partialResults is true, 반환된 promise는 즉시 해결되고 세션이 끝날 때까지 partialResults listener를 통해 업데이트가 스트리밍됩니다.
기본 경로는 백워드 호환성을 위해 레거시 인식기 동작을 유지합니다. useOnDeviceRecognition: true 만약
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.start();stop
이면 만들어야 합니다.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.stop();forceStop
제목이 '정지'인 섹션입니다.현재 세션을 강제로 중지합니다.
안드로이드에서 이 기능은 정상적인 중지를 먼저 시도하고, 그 다음 destroy/recreate를 사용합니다. timeoutiOS에서 현재 세션은 즉시 중지됩니다.
부분 전사록이 캐시되어 있다면, partialResults listener에 forced: true.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.forceStop();getLastPartialResult
getLastPartialResult지금까지 캐시된 부분 전사록 결과를 가져옵니다.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.getLastPartialResult();setPTTState
setPTTState현재 push-to-talk 버튼 상태를 업데이트합니다.
이 기능을 사용할 때는 continuousPTT 또는 사용자 지정 대기열로 말하기 흐름을 사용합니다.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.setPTTState({} as PTTStateOptions);getSupportedLanguages
“getSupportedLanguages” 섹션Recognizer 내부에서 지원하는 지역을 가져옵니다.
Android 13+ 장치에서는 이 목록을 더 이상 노출하지 않습니다. 그 경우는 빈 목록입니다. languages __CAPGO_KEEP_0__
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.getSupportedLanguages();isListening
이 플러그인이 음성을 듣고 있는지 여부를 반환합니다.__CAPGO_KEEP_0__
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.isListening();checkPermissions
현재 권한 상태를 가져옵니다.Copy to clipboard
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.checkPermissions();requestPermissions
requestPermissions마이크 + 음성 인식 권한을 요청합니다.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.requestPermissions();타입 참조
타입 참조SpeechRecognitionAvailability
음성 인식 가능성export interface SpeechRecognitionAvailability { available: boolean;}SpeechRecognitionStartOptions
음성 인식 옵션recognizer가 호출될 때의 동작을 구성합니다.
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
음성 인식 결과export interface SpeechRecognitionMatches { matches?: string[];}ForceStopOptions
강제 종료 옵션의 옵션
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
마지막 부분 결과의 결과
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
PTT 상태 옵션의 옵션
export interface PTTStateOptions { /** * Whether the PTT button is currently held. */ held: boolean;}SpeechRecognitionLanguages
클립보드 복사export interface SpeechRecognitionLanguages { languages: string[];}SpeechRecognitionListening
SpeechRecognitionListening 섹션export interface SpeechRecognitionListening { listening: boolean;}SpeechRecognitionPermissionStatus
SpeechRecognitionPermissionStatus 섹션Permission map returned by checkPermissions and requestPermissions.
export interface SpeechRecognitionPermissionStatus { speechRecognition: PermissionState;}SpeechRecognitionSegmentResultEvent
SpeechRecognitionSegmentResultEvent 섹션Android에서만 segmented 결과가 생성될 때 발생합니다.
export interface SpeechRecognitionSegmentResultEvent { matches: string[];}SpeechRecognitionPartialResultEvent
SpeechRecognitionPartialResultEvent 섹션부분 전사 결과가 생성될 때 발생합니다.
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
음성 인식 듣기 이벤트청취 상태가 변경될 때 발생합니다.
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';}진실의 근원
Section titled “진실의 근원”이 페이지는 플러그인의 src/definitions.ts업스트림에서 pubic API이 변경될 때 다시 싱크를 실행하세요.