aardio 文档

aardio 范例: 最小流式朗读:收到前面的音频就开始播放,不必等整段合成结束。

带界面的完整示例见

// 最小流式朗读:收到前面的音频就开始播放,不必等整段合成结束。
// 带界面的完整示例见: https://www.aardio.com/zh-cn/docs/examples/Media/Audio/edgeTTS-mediaFoundation.html
import web.edgeTextToSpeech;
import sys.mediaFoundation.streamingMp3Player;

//1. 创建播放器:负责输出音频
var player,err=sys.mediaFoundation.streamingMp3Player();
if(!player) return print(err);

player.onEnd = function(){
    /*正常输入已结束,所有待播缓冲已完成且资源已释放*/
}

//2. 创建 TTS 转换器:负责文本转语音
var engine=web.edgeTextToSpeech({voice="zh-CN-XiaoxiaoNeural";rate=1});

//3. 创建异步合成任务
var task,err=engine.synthesize({text="这是一段流式语音。收到前面的音频后即可开始播放,不必等到整段合成结束。"},player);
if(!task){player.close();return print(err.message);}

/*
合成失败也会传给播放器,所以只需等播放结束。
wait 期间处理消息,界面程序用原有消息循环即可(不需要player.wait)。
*/
var ok,err=player.wait(120000);
if(!ok) print(err);
task.cancel(); // 超时等提前结束时停止合成;已结束的任务忽略此调用
player.close();
Markdown 格式