You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
1 month ago | |
|---|---|---|
| .. | ||
| android | 1 month ago | |
| lib | 1 month ago | |
| README.md | 1 month ago | |
| pubspec.yaml | 1 month ago | |
README.md
Bytedance Speech Plugin
火山引擎语音识别和语音合成插件,为Flutter应用提供高质量的语音识别(ASR)和语音合成(TTS)能力。
功能特性
-
语音识别(ASR)
- 支持实时语音识别
- 支持流式输入和流式识别两种模式
- 支持中文普通话等多种语言
- 支持标点符号自动添加
-
语音合成(TTS)
- 支持高质量语音合成
- 支持多种音色选择
- 支持多种音频格式输出
- 支持使用大模型合成自然的语音
安装
将以下内容添加到您的pubspec.yaml文件中:
dependencies:
bytedance_speech:
path: ../local_plugins/bytedance_speech
使用方法
初始化插件
import 'package:bytedance_speech/bytedance_speech.dart';
// 获取插件实例
final bytedanceSpeech = BytedanceSpeech();
// 初始化ASR
await bytedanceSpeech.initAsr(
AsrConfig(
appId: 'YOUR_APP_ID',
accessToken: 'YOUR_ACCESS_TOKEN',
streamMode: true, // true: 双向流式模式, false: 流式输入模式
enablePunctuation: true,
sampleRate: 16000,
bits: 16,
channels: 1,
),
);
// 初始化TTS
await bytedanceSpeech.initTts(
TtsConfig(
appId: 'YOUR_APP_ID',
accessToken: 'YOUR_ACCESS_TOKEN',
speaker: 'zh_female_shuangkuaisisi_moon_bigtts', // 选择音色
format: 'mp3',
sampleRate: 24000,
enableTimestamp: true,
),
);
语音识别(ASR)
// 监听ASR事件
bytedanceSpeech.onAsrEvent.listen((event) {
switch (event.type) {
case AsrEventType.recognizing:
// 处理中间识别结果
print('识别中:${event.text}');
break;
case AsrEventType.result:
// 处理最终识别结果
print('识别结果:${event.text}');
break;
case AsrEventType.error:
// 处理错误
print('识别错误:${event.errorCode} - ${event.errorMessage}');
break;
case AsrEventType.sessionStarted:
print('开始识别会话');
break;
case AsrEventType.sessionStopped:
print('识别会话结束');
break;
default:
break;
}
});
// 开始识别
await bytedanceSpeech.startAsr();
// 发送音频数据
await bytedanceSpeech.feedAudioData(audioBytes);
// 停止识别
await bytedanceSpeech.stopAsr();
// 释放资源
await bytedanceSpeech.disposeAsr();
语音合成(TTS)
// 监听TTS事件
bytedanceSpeech.onTtsEvent.listen((event) {
switch (event.type) {
case TtsEventType.audio:
// 处理音频数据
if (event.audioData != null) {
// 播放或保存音频数据
playAudio(event.audioData!);
}
break;
case TtsEventType.completed:
// 合成完成
print('语音合成完成');
break;
case TtsEventType.error:
// 处理错误
print('合成错误:${event.errorCode} - ${event.errorMessage}');
break;
case TtsEventType.started:
print('开始合成');
break;
default:
break;
}
});
// 合成文本
await bytedanceSpeech.synthesize('您好,欢迎使用火山引擎语音合成服务。');
// 停止合成
await bytedanceSpeech.stopTts();
// 释放资源
await bytedanceSpeech.disposeTts();
音色列表
以下是部分可用的音色列表:
| 音色ID | 描述 |
|---|---|
| zh_female_shuangkuaisisi_moon_bigtts | 中文女声-爽快思思 |
| zh_male_zhiqiangqikai_moon_bigtts | 中文男声-志强起凯 |
| zh_female_xiaoya_moon_bigtts | 中文女声-小雅 |
| zh_male_xiaoming_moon_bigtts | 中文男声-小明 |
完整的音色列表,请参考火山引擎官方文档:火山引擎音色列表
许可证
本插件基于MIT许可证开源。