标签: say

如何更改 OS X 的“say”命令的发音方式?

OS X 的say命令对某些任务很有用(例如 Skype 的“联系人上线时通知我”),但它会错误地发音一些姓名。有没有办法教say一个单词的不同发音?

例如,尝试:

say "Hi, Joel Spolsky"
Run Code Online (Sandbox Code Playgroud)

'ol' 听起来像 'ball' 而不是 'old'。我想添加一个例外,说“像这样发音 Spolsky”,而不是尝试教授新的语言规则。我敢打赌有一种方法,因为它可以像 Apple 想要的那样发音“iphone”。


更新- 经过一些研究,这是我学到的:

  1. 文本转语音分为将文本转换为音素,然后使用语音将音素转换为音频。改变声音不会影响音素。
  2. 语音合成管理器有一些功能将文本到音素,而对于一个方法 登记语音字典,将增加新的文本音素地图。但是,Apple 的语音词典必须是二进制形式的——我没有找到任何 plist XML。
  3. 使用dtrace在运行say,我发现在/System/Library/PrivateFrameworks/SpeechDictionary.framework/Resources打开了一些有趣的文件。这大概就是语音词典了,但是除了同音字是XML,都是二进制的。向同音词添加条目没有任何作用 - 它可能用于语音到文本。它们也是由 Apple 签名的代码 - 更改它们可能会阻止某些程序运行。
    • 前缀字典
    • 购物车名称
    • 购物车
    • 符号字典
    • 同音字
  4. 有一些方法可以添加应用程序界面元素的文本版本,以便 VoiceOver 工作,其中很多是开发人员免费获得的,但也有一些棘手的地方。这里的标准似乎是根据需要使用拼音。

我的猜测是:

  1. say是语音合成管理器之上的一个轻量级代码。Apple 开发人员很容易添加一个命令行选项来获取语音字典 plist 的路径以进行备用音素映射,但他们没有。编写一个更好的say.
  2. Skype 可能直接使用语音合成管理器,没有留下任何钩子来改变我朋友名字的发音方式,除了拼音之外,这很愚蠢。
  3. 制作命令行版本的最简单方法say是 JRobert 建议的方式。

这是我的快速实施,使用道格哈里斯的拼写建议:

#!/bin/sh
echo $@ | tr …
Run Code Online (Sandbox Code Playgroud)

say macos

14
推荐指数
2
解决办法
6143
查看次数

是否可以改变“说”命令的声音?

是否可以更改 Mac OS X 用于say命令的语音?如何?

text-to-speech say macos

12
推荐指数
1
解决办法
2万
查看次数

如何让 OS X 的 say 命令说出 IPA 字符?

我有大约 200 行 Beowulf,我和我的几个朋友大约在一年半前将它们翻译成国际音标。当时,我们用来检查发音的工具之一是 OS X 的say命令。

这是根据转换成 IPA 的诗的 Klaeber 版本的前六行,我知道肯定say可以正确读出,因为我自己在 MacBook 上运行了它,我正在输入这个问题:

hwæt we ????r?den? in ?jæ??rd??um
?ðe?od?kyni??? ?rym? je?fru?non
hu? ð? æðel????s ?el?en ?frem?edon!
oft ?yld ?efi? ??æ?ðen? ?ræ??tum,
?m?ni?um mæj?um ?me?odusetl? ov?tæ?ax,
'ejzud? e?or?s, syð??nærest wæ??rð
Run Code Online (Sandbox Code Playgroud)

现在,尽我所能,我无法再正确读出上述任何一行。我已经尝试了所有讲英语的声音(10.5 之前的声音很搞笑),但是我之前肯定工作过的声音,例如 Fiona 和 Kate,现在似乎完全忽略了 IPA 字符。

这些是我这次使用的有点不干的测试命令:

say --rate=150 --voice=Fiona "/hwæt we ????r?den? in ?jæ??rd??um/"
say --voice=Fiona "/hwæt we ????r?den? in ?jæ??rd??um/"
say --rate=150 --voice=Fiona "hwæt we ????r?den? in ?jæ??rd??um"
say --voice=Fiona "hwæt …
Run Code Online (Sandbox Code Playgroud)

text-to-speech say macos

6
推荐指数
1
解决办法
1875
查看次数

标签 统计

macos ×3

say ×3

text-to-speech ×2