跳过主要内容

语音合成 Capacitor 插件

使用完全控制语言、声音、pitch、速率和音量的文本合成语音。

安装

bun add @capgo/capacitor-speech-synthesis bunx cap sync
npm、pnpm 或 yarn
  • npm install @capgo/capacitor-speech-synthesis
  • pnpm add @capgo/capacitor-speech-synthesis
  • yarn add @capgo/capacitor-speech-synthesis

指南

如何在Capacitor中使用语音合成

在设备上测试

下载Capgo应用程序,然后扫描code中的二维码。

语音合成插件预览二维码code

使用@capgo/capacitor-speech-synthesis

用于将文本转换为语音的语音合成插件。

安装

bun add @capgo/capacitor-speech-synthesis
bunx cap sync

bunx cap sync 将插件的本机code复制到您的本机项目中。每次升级插件后都需要重新运行。

Import

import { SpeechSynthesis } from '@capgo/capacitor-speech-synthesis';

API概览

方法 功能描述
speak 使用指定选项朗读给定的文本。该发言被添加到语音队列中。
synthesizeToFile 仅限 Android/iOS,合成语音到音频文件(返回音频文件的保存路径)。
cancel 取消所有排队的发言并停止当前语音。
pause 立即暂停语音。
resume 恢复暂停的语音。
isSpeaking 检查语音合成是否正在说话。
isAvailable 检查设备上是否支持语音合成。
getVoices 获取所有可用的语音。
getLanguages 获取所有可用的语言。
isLanguageAvailable 检查是否支持特定的语言。
isVoiceAvailable 检查是否支持特定的语音。
initialize 初始化语音合成引擎(iOS优化)。这可以减少首次语音请求的延迟。
activateAudioSession 激活特定类别的音频会话(iOS仅限)。
deactivateAudioSession 停用音频会话(iOS仅限)。

示例

speak()

播放指定文本的语音(iOS优化)。

import { SpeechSynthesis } from '@capgo/capacitor-speech-synthesis';

const result = await SpeechSynthesis.speak({
  text: 'Hello, world!',
  language: 'en-US',
  rate: 1.0,
  pitch: 1.0,
  volume: 1.0,
  queueStrategy: 'Add'
});
console.log('Utterance ID:', result.utteranceId);

synthesizeToFile()

语音合成示例

import { SpeechSynthesis } from '@capgo/capacitor-speech-synthesis';

const result = await SpeechSynthesis.synthesizeToFile({
  text: 'Hello, world!',
  language: 'en-US'
});
console.log('Audio file saved at:', result.filePath);

cancel()

播放指定文本的语音(iOS和Android)。

import { SpeechSynthesis } from '@capgo/capacitor-speech-synthesis';

await SpeechSynthesis.cancel();

pause()

取消所有排队的语音和停止当前语音。

import { SpeechSynthesis } from '@capgo/capacitor-speech-synthesis';

await SpeechSynthesis.pause();

resume()

立即暂停语音。

import { SpeechSynthesis } from '@capgo/capacitor-speech-synthesis';

await SpeechSynthesis.resume();

isSpeaking()

恢复暂停的语音。

import { SpeechSynthesis } from '@capgo/capacitor-speech-synthesis';

const { isSpeaking } = await SpeechSynthesis.isSpeaking();
console.log('Is speaking:', isSpeaking);

检查语音合成是否正在播放。 上表列出了14个核心方法。监听器和版本辅助,以及每个方法的完整契约,均在GitHub仓库中文档化。.

监听事件

addListener 返回一个句柄。调用 handle.remove() 当屏幕卸载时,或者 SpeechSynthesis.removeAllListeners() 清除每个监听器。

完整参考

继续使用 @capgo/capacitor-speech-synthesis

如果您正在使用 使用 @capgo/capacitor-speech-synthesis 来规划原生插件工作,连接它 @capgo/capacitor-语音合成 为 @capgo/capacitor-语音合成 的实现细节 开始使用 为开始使用的实现细节 Capgo 插件目录 为Capgo 插件目录中的产品工作流程 Capacitor 由 Capgo 提供的插件 为Capacitor 由 Capgo 提供的插件的实现细节 添加或更新插件 为添加或更新插件的实现细节

常见问题

语音合成插件常见问题

如何在Capacitor应用中安装语音合成插件?

运行"bun add @capgo/capacitor-语音合成" (或 "npm install @capgo/capacitor-语音合成"),然后运行 "bunx cap sync" 以便 iOS 和 Android 项目捕获到本地 code。从 "@capgo/capacitor-语音合成" 导入您的应用 code。

是否@capgo/capacitor-speech-synthesis与React、Vue和Angular兼容?

是。语音合成是一个@Capacitor包,因此它与任何运行在@Capacitor中的Web框架兼容,包括Ionic、React、Vue、Angular、Svelte和纯JavaScript。

哪个@Capacitor版本@capgo/capacitor-speech-synthesis支持?

@Capgo插件遵循@Capacitor的主要版本:使用与@Capacitor主要版本匹配的插件主要版本(例如插件v8与@Capacitor 8)。在@GitHub README中列出的维护版本的兼容性表格。

是否@capgo/capacitor-speech-synthesis免费且开源?

Yes. The source code is public on GitHub at https://github.com/Cap-go/capacitor-speech-synthesis/ and the package is free to install from npm. Bug reports and pull requests are welcome.

是否可以在App Store评审无需更新@code使用语音合成?

安装或升级插件会改变本机@code,因此需要一个新的商店构建。之后,JavaScript、HTML和CSS调用插件的更改可以立即与@Capgo实时更新一起发布。

不必等待应用程序审查就可以将语音合成的变化推送到应用程序

一旦插件在您的商店构建中,Capgo 即刻将您的 JavaScript、HTML 和 CSS 更改推送给用户。

开始使用 Capgo