菜鸟科技网

mac say命令如何使用?

macOS 系统中的 say 命令是一个简单而实用的文本转语音(Text-to-Speech, TTS)工具,它允许用户通过命令行将文本转换为语音输出,无需安装额外的第三方软件,作为 macOS 的内置功能,say 命令基于系统的语音合成引擎,支持多种语言、语音风格和参数调整,适用于自动化脚本、辅助功能、语音提示等多种场景,以下将从基本用法、参数详解、实际应用案例及注意事项等方面展开详细介绍。

mac say命令如何使用?-图1
(图片来源网络,侵删)

基本用法

say 命令的基本语法非常简单,核心功能是直接朗读输入的文本,在终端中输入 say "Hello, World!",系统会立即通过默认语音朗读这句话,若未指定文本内容,say 命令会等待用户输入,直到按下 Ctrl+D 结束输入后再朗读。say 命令支持将文本保存为音频文件,使用 -o 参数可指定输出路径,say -o hello.aiff "Hello" 会生成一个名为 hello.aiff 的音频文件,默认格式为 AIFF,也可通过 -f 参数指定其他格式(如 cafwav)。

参数详解

say 命令提供了丰富的参数选项,以满足不同场景的需求,以下为常用参数的说明:

参数 功能描述 示例
-v <voice> 指定语音类型(如语言、性别、口音) say -v "Tingting" "你好"
-r <rate> 设置语速(范围:100-1000,默认为200) say -r 150 "Slow speech"
-o <file> 输出音频文件至指定路径 say -o output.aiff "Hello"
-f <file> 从文本文件中读取内容并朗读 say -f text.txt
-i 交互模式,逐行读取文件并朗读 say -i text.txt
-q 静默模式,不播放语音,仅生成音频文件 say -q -o silent.aiff "Quiet"

语音类型(-v 参数)

macOS 内置多种语音,支持英语、中文、法语、日语等语言,可通过 say -v ? 查看所有可用语音列表,中文语音包括 "Tingting"(女声,普通话)、"Trinity"(女声,粤语)等;英语语音有 "Samantha"(女声,美式)、"Daniel"(男声,英式)等,语音名称通常包含语言、性别和地区信息,en-US-Samantha 表示美式英语女声。

语速调整(-r 参数)

默认语速为 200,数值越大语速越快。say -r 100 "Slow" 会以较慢速度朗读,而 say -r 300 "Fast" 则会快速输出,对于需要清晰朗读的场景(如辅助功能),可适当降低语速;对于快速提示,可提高语速。

mac say命令如何使用?-图2
(图片来源网络,侵删)

音频文件输出

-o 参数可将语音保存为音频文件,方便后续使用。say -o message.caf -v "Alex" "Welcome" 会生成使用 "Alex" 语音的 AIFF 格式文件(.caf 为 macOS 常用音频格式),若需压缩文件,可通过 afconvert 工具转换格式,如 afconvert output.aiff output.mp4 -d aac

实际应用案例

自动化脚本中的语音提示

在编写 Shell 脚本时,可通过 say 命令实现任务完成的语音提醒,以下脚本在文件复制完成后播放提示音:

cp -r source_dir/ dest_dir/
say "文件复制完成!"

辅助功能支持

对于视障用户,say 命令可帮助读取屏幕内容,结合 pbcopypbpaste 命令,实现剪贴板内容的语音朗读:

pbpaste | say -v "Tingting"

语音备忘录

通过 say 命令将文本转换为语音文件,制作语音备忘录,将会议内容保存为音频:

mac say命令如何使用?-图3
(图片来源网络,侵删)
say -f meeting_notes.txt -o meeting_summary.aiff

注意事项

  1. 语音依赖系统语言:部分语音可能需要 macOS 系统支持对应语言,例如中文语音需在“系统设置”中启用中文语言包。
  2. 音频文件格式兼容性:默认生成的 AIFF 文件体积较大,可通过 afconvert 转换为 MP3 或 AAC 格式以节省空间。
  3. 脚本中的多行文本处理:若需朗读多行文本,可使用 here document 语法,
    say <<EOF
    第一行
    第二行
    EOF

相关问答FAQs

Q1: 如何查看 macOS 系统支持的所有语音类型?
A1: 在终端中输入 say -v ?say -v list,系统会列出所有可用语音的名称、语言和性别信息。en-US-Samantha (English - United States, Female) 表示美式英语女声。

Q2: 如何调整 say 命令的语音音量?
A2: say 命令本身不直接支持音量调整,但可通过系统音量控制或结合 osascript 命令实现,以下命令可将系统音量设置为 50% 后朗读文本:

osascript -e "set volume output volume 50"
say "当前音量为50%"
分享:
扫描分享到社交APP
上一篇
下一篇