在自动化脚本中如何实现播音?

一、播放音频文件:audio 对象

当需要播放特定的音频文件(如提示音、背景音乐、录音回放等)时,应使用 audio 对象。该对象提供了播放与停止两个核心方法。

1. audio.play(fullPath) ------ 播放音频
  • 功能:播放指定的音频文件。

  • 参数:

    • fullPath(string,必填):音频文件的完整路径。
  • 支持的路径类型:

    • 本地文件路径 :以 /sdcard/ 开头,指向设备存储中的具体文件。例如:/sdcard/my.mp3。

    • 打包资源路径 :以 asset: 开头,指向打包到冰狐 APP 中的声音文件。例如:asset:test.mp3。这种方式适合将常用音频随 APP 一起分发,无需额外存储权限。

2. audio.stop() ------ 停止播放
  • 功能:立即停止当前正在播放的音频。

  • 参数:无。

使用示例:

复制代码
// 播放设备存储中的音频文件
audio.play('/sdcard/my.mp3');

// 播放打包到冰狐APP中的资源文件
audio.play('asset:test.mp3');

// 停止当前播放
audio.stop();

二、文本转语音(TTS):tts 对象

当需要将动态生成的文本内容(如状态播报、预警信息、进度提示等)实时转换为语音时,应使用 tts 对象。其 API 设计与 audio 对象保持一致。

1. tts.play(text) ------ 播放文本
  • 功能:将传入的文本字符串转换为语音并实时播放。

  • 参数:

    • text(string,必填):待转换的文本内容,支持中文、英文、数字及符号混合输入。
  • 特点:

    • 无需初始化:平台底层自动完成语音合成与播放,开箱即用。

    • 自动中断:连续调用时,后一次播放会自动中断前一次未完成的语音,避免声音叠加。

    • 完全本地运行:无需网络请求,无调用频率限制,无额外费用,适合离线自动化场景。

2. tts.stop() ------ 停止播放
  • 功能:立即终止当前正在播放的 TTS 语音。

  • 参数:无。即使当前没有语音在播放,调用此方法也不会报错。

使用示例:

复制代码
// 基础文本播报
tts.play('任务已启动,正在执行自动化操作。');

// 带变量的动态播报
var count = 10;
tts.play('操作完成,共执行了' + count + '次任务。');

// 停止当前播报
tts.stop();

三、audio 与 tts 的选择与对比

对比维度 audio 对象 tts 对象
输入类型 预先准备好的音频文件(MP3等) 动态生成的文本字符串
适用场景 固定提示音、背景音乐、录音回放 状态播报、预警信息、进度提示
灵活性 低(内容固定) 高(内容可动态拼接)
资源依赖 依赖音频文件存在 无需外部文件,仅依赖系统 TTS 引擎
核心方法 play(fullPath) / stop() play(text) / stop()

四、典型应用场景

  1. 自动化任务状态播报 :在脚本的关键节点(启动、完成、异常)调用 tts.play() 进行语音提醒,无需盯着屏幕查看日志。

  2. 设备监控预警:当检测到存储空间不足、网络断开等异常时,通过 TTS 发出语音告警。

  3. 批量操作进度提示:在批量点击、批量数据处理过程中,播报当前进度,避免重复操作。

  4. 固定提示音播放 :在特定操作完成时,播放预设的音频文件(如成功提示音、错误提示音),使用 audio.play() 实现。

  5. 无障碍辅助:为界面文本提供语音朗读,提升工具的普惠性。

五、注意事项

  • 文件路径 :使用 audio.play() 时,务必确保路径正确且文件存在。本地路径需以 /sdcard/ 开头,资源路径需以 asset: 开头。

  • 权限:播放本地存储的音频文件可能需要存储权限,请确保冰狐 APP 已获取相应权限。

  • 音频格式:建议使用常见的 MP3 格式,以确保兼容性。

  • 连续调用 :无论是 audio.play() 还是 tts.play(),连续调用时后者会自动中断前者,无需手动调用 stop()。

总结

冰狐智能辅助平台的播音能力通过 audio 和 tts 两个对象提供,API 设计简洁统一------都只包含 play() 和 stop() 两个方法。audio 面向固定音频文件的播放,tts 面向动态文本的语音合成。开发者可根据实际需求灵活选用,在自动化脚本中快速集成语音播报功能,提升任务执行的感知度和交互体验。

相关推荐
weixin_4684668511 小时前
从“看懂”到“做到”:视觉-语言-动作模型如何让机器人真正执行指令
人工智能·ai·机器人·大语言模型·前沿科技
朋友圈自动点赞工具11 小时前
科学AI插件化:从蛋白质结构到古籍修复
人工智能
龙粤GEO12 小时前
实体Entity在GEO中代表什么含义
人工智能
剑雨巍巍13 小时前
AI Agent面试之基础概念
人工智能
微帧Visionular13 小时前
AI视频单帧清晰,播放时却闪烁,原因是什么?
人工智能·深度学习·音视频
武子康13 小时前
MultiNet6 空闲崩溃:`EXCVADDR=0x8` 后又出现 `CORRUPT HEAP`
人工智能·后端·agent
云智慧AIOps社区13 小时前
智能巡检机器人应用场景解析:机房巡检、园区安防、管廊巡视与展厅导览
人工智能·机器人·具身智能·智能巡检机器人·企业级智能巡检机器人·机房巡检机器人·导览机器人
EnCi Zheng13 小时前
Agent 如何进行工具调用:从一次 Function Calling 到生产级工具编排的完整链路
大数据·人工智能·agent·ai编程·工具调用
赛博守夜人13 小时前
AI安全攻防与治理之十四:AI 安全测试不能脱离传统安全,Web、API、移动端与模型攻击面的组合拳
前端·人工智能·安全
lovingsoft13 小时前
AI 时代未来软件形态趋势:从固定功能应用,走向意图驱动、智能体原生的柔性系统-浅析
人工智能