小编jwh*_*ock的帖子

如何更改 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
查看次数

为 XBMC 备份 DVD 的最佳方法是什么?

我在运行 OS X 的 Mac mini 上运行XBMC,我想让我们的 DVD(以及最终的录像带)可以访问,以便我们五岁的孩子可以自己开始看电影。

我首先尝试复制 DVD 的数据内容,但 XBMC 在遇到这些文件夹时并没有做任何魔术。它是可播放的,但更像是选择文件名,而不是选择电影。

接下来我将尝试一个直接的 .ISO 文件,但我希望其他人已经走这条路并有一些提示。我对 Linux 工具最满意,但如果在 Windows 或 OS X 上有更好的程序,我会检查一下。

backup kodi

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

标签 统计

backup ×1

kodi ×1

macos ×1

say ×1