# Bytedance Speech Plugin 火山引擎语音识别和语音合成插件,为Flutter应用提供高质量的语音识别(ASR)和语音合成(TTS)能力。 ## 功能特性 - **语音识别(ASR)** - 支持实时语音识别 - 支持流式输入和流式识别两种模式 - 支持中文普通话等多种语言 - 支持标点符号自动添加 - **语音合成(TTS)** - 支持高质量语音合成 - 支持多种音色选择 - 支持多种音频格式输出 - 支持使用大模型合成自然的语音 ## 安装 将以下内容添加到您的`pubspec.yaml`文件中: ```yaml dependencies: bytedance_speech: path: ../local_plugins/bytedance_speech ``` ## 使用方法 ### 初始化插件 ```dart 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) ```dart // 监听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) ```dart // 监听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 | 中文男声-小明 | 完整的音色列表,请参考火山引擎官方文档:[火山引擎音色列表](https://www.volcengine.com/docs/6561/123172) ## 许可证 本插件基于MIT许可证开源。 ## 相关链接 - [火山引擎官网](https://www.volcengine.com/) - [火山引擎语音服务文档](https://www.volcengine.com/docs/6561/65067)