跳过内容

开始入门

GitHub

您可以使用我们的AI辅助设置来安装插件。将Capgo技能添加到您的AI工具中,使用以下命令:

终端窗口
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

然后使用以下提示:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-speech-recognition` plugin in my project.

如果您更喜欢手动设置,请按照以下命令安装插件并遵循以下平台特定的说明:

终端窗口
bun add @capgo/capacitor-speech-recognition
bunx cap sync
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';

检测当前设备上的本机语音识别服务是否可用。

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.available();

isOnDeviceRecognitionAvailable

节标题:isOnDeviceRecognitionAvailable

检测当前设备、操作系统版本和所选语言是否支持平台的新设备识别路径。

这是您应该在启用之前使用的能力检查。 useOnDeviceRecognition。 A true 结果表明当前设备、操作系统版本和语言可以使用该平台的新设备路径。

返回 false 当设备仅支持旧版识别器路径时。

平台SDK文档: iOS: 语音 Android: 语音识别器

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.isOnDeviceRecognitionAvailable();

开始捕获音频并转录语音。

partialResultstrue,返回的 promise 立即解析并通过 partialResults 监听器更新

直到会话结束。 useOnDeviceRecognition: true 默认路径保留了旧版识别器行为以保持向后兼容性。请

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.start();

停止监听并释放本机资源。

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.stop();

强制停止当前会话。

在 Android 上,这首先尝试正常停止,然后回退到销毁/重新创建。 timeout在 iOS 上,当前会话立即停止。

如果有部分转录缓存,会通过 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();

更新当前推送对话按钮状态。

Use this together with continuousPTT 或与自定义按住说话流程一起使用。

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.setPTTState({} as PTTStateOptions);

获取底层识别器支持的语言列表。

Android 13+ 设备不再暴露此列表;在这种情况下 languages 是空的。

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.getSupportedLanguages();

返回插件是否正在积极监听语音输入。

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.isListening();

checkPermissions

标题:检查权限

获取当前权限状态。

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.checkPermissions();

requestPermissions

标题:请求权限

请求麦克风 + 语音识别权限。

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.requestPermissions();

SpeechRecognitionAvailability

标题:语音识别可用性
export interface SpeechRecognitionAvailability {
available: boolean;
}

SpeechRecognitionStartOptions

标题:语音识别启动选项

配置语音识别器的行为

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

语音识别匹配

复制到剪贴板

export interface PTTStateOptions {
/**
* Whether the PTT button is currently held.
*/
held: boolean;
}

SpeechRecognitionLanguages

语音识别语言
export interface SpeechRecognitionLanguages {
languages: string[];
}

SpeechRecognitionListening

语音识别监听
export interface SpeechRecognitionListening {
listening: boolean;
}

SpeechRecognitionPermissionStatus

语音识别权限状态

语音识别权限映射 checkPermissionsrequestPermissions.

export interface SpeechRecognitionPermissionStatus {
speechRecognition: PermissionState;
}

SpeechRecognitionSegmentResultEvent

语音识别分段结果事件

仅在 Android 上产生分段结果时触发

export interface SpeechRecognitionSegmentResultEvent {
matches: string[];
}

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';
}

重新同步公共__CAPGO_KEEP_0__时,重新运行上游。 src/definitions.ts. Re-run the sync when the public API changes upstream.

继续从开始

真实来源

如果您正在使用 开始使用 来规划仪表板和API操作,连接它与 使用@capgo/capacitor语音识别 使用@capgo/capacitor语音识别 API Overview for the implementation detail in API Overview, 介绍 介绍 API密钥 API密钥 设备 了解设备的实现细节。