.NET MAUI 通过内置 ITextToSpeech 接口实现跨平台 TTS,需配置 Android 权限、iOS 描述字段,支持语速/音量/语言切换,但不支持导出 MP3。
.NET MAUI 实现文字转语音(TTS)非常直接,核心靠内置的 ITextToSpeech 接口,无需第三方 SDK 就能跨平台朗读中文、英文等常见语言,但要注意平台配置和权限细节。
在任意页面逻辑中(如按钮点击事件),调用:
await TextToSpeech.Default.SpeakAsync("你好,这是 MAUI 的文字转语音功能");
这就是全部——只要平台环境就绪,就能立刻听到声音。支持异步等待、中断、指定音量/语速(部分平台有限制)。
不同系统有硬性要求,漏掉任一环节都会静音或报错:
AndroidManifest.xml 中添加权限:INTERNET,但音频状态权限需手动加)Info.plist 添加键值:NSMicrophoneUsa
geDescription 用于语音合成优化(可选说明) SpeakAsync 支持传入 SpeechOptions 对象:
var options = new SpeechOptions
{
Volume = 1.0f,
Pitch = 1.0f,
Voice = TextToSpeech.Default.Voices.FirstOrDefault(v => v.Language == "zh-CN") // 指定中文发音人
};
await TextToSpeech.Default.SpeakAsync("今天天气不错", options);
注意:
– Voice 列表取决于设备已安装的语言包(Android/iOS 需在系统设置中下载中文语音数据);
– Pitch 和 Volume 在 Android 上效果明显,iOS 表现较弱;
– 英文、日文、法语等只需换对应 Language 值(如 "en-US", "ja-JP", "fr-FR")。
myEditor.Text 传入即可,但建议先 string.IsNullOrWhiteSpace() 判空基本上就这些。不复杂但容易忽略权限和系统语音包,跑通一次后复用性很高。