需用PowerShell调用SAPI生成WAV语音文件,再通过任务计划程序在日程时间触发播放:先在日历创建带文字描述的事件并勾选“显示在日历上”,再执行脚本生成cal_voice_reminder.wav,最后配置任务计划在指定时间以高权限播放该音频。

你需要在电脑日历中添加一条语音日程,比如“提醒我晚上7点给父母打电话”,并让系统在指定时间自动播放这段语音,即使你正在使用其他全屏应用或电脑已锁屏。Windows原生日历不支持直接录制和播放语音日程,必须通过组合系统功能实现——关键在于用语音转文字生成日程事件,再用任务计划程序调用系统TTS引擎播放音频。
用语音输入创建带文字描述的日程
点击任务栏右下角日期时间区域,打开日历面板→点击目标日期(如今天)→选择“新建事件”。
在标题栏输入“语音提醒-给父母打电话”,起止时间设为19:00–19:01;地点栏留空,描述栏粘贴语音转写的完整内容:“请现在拨通妈妈手机,通话时长不少于5分钟”。
【必须勾选“显示在日历上”】,否则该事件不会被后续脚本识别,也无法触发后台播放逻辑。
生成对应语音WAV文件(本地离线合成)
按下Win + R,输入powershell,回车打开PowerShell窗口。
粘贴执行以下命令(替换其中中文为你要播放的实际内容):
```powershell $voice = New-Object -ComObject SAPI.SpVoice; $file = New-Object -ComObject SAPI.SpFileStream; $file.Open("C:\Users\Public\cal_voice_reminder.wav", 3, $false); $voice.AudioOutputStream = $file; $voice.Speak("请现在拨通妈妈手机,通话时长不少于5分钟"); $file.Close() ```
这一步会调用Windows内置的SAPI语音引擎,在公共目录生成一个名为cal_voice_reminder.wav的标准WAV音频文件。注意:路径必须是NTFS可写位置,且不能含中文括号或特殊符号,否则脚本静默失败。
绑定日程时间触发语音播放
第一步:按Win + R输入taskschd.msc,回车打开任务计划程序。
第二步:右键“任务计划程序库”→“创建基本任务”,命名为“语音日程播放-给父母打电话”。
第三步:触发器选“一次”,日期时间精确设为19:00,勾选“延迟任务最多”并设为2分钟——防止系统瞬时高负载导致语音错过首播。
第四步:操作选“启动程序”,程序栏填入powershell.exe,参数栏填入:
-Command "Start-Process 'C:\Users\Public\cal_voice_reminder.wav' -Verb RunAs"
第五步:完成向导后,在任务列表中双击该任务→“属性”→勾选“不管用户是否登录都要运行”和“如果任务失败,重新运行每60秒,最多重复2次”。

















