【问题标题】:Microsoft speech api 5.1 GetVoices returns voices that don't exist on Windows 7Microsoft 语音 api 5.1 GetVoices 返回 Windows 7 上不存在的语音
【发布时间】:2011-03-20 13:18:50
【问题描述】:

我正在从 XP 迁移到 Windows 7 64 位。我在 XP 机器上编译的应用程序可以在 XP 上正常运行。但是,当我在 W7 机器上运行 exe 时,GetVoices 返回的声音列表如下:
微软安娜
微软玛丽
微软迈克
示例 TTS 语音。

检查 W7 语音属性对话框显示计算机上仅加载了 Microsoft Anna。检查 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Speech/Voices 的注册表可以确认这一点。

在我的新 Windows 7 开发机器上重新编译我的应用程序会创建一个重复上述行为的 exe。 (XP编译代码和W7编译代码在W7下执行时重现同样的错误)

我在 Windows 7 64 位上使用 Delphi 7 进行开发,我正在使用 Microsoft Speech Object Library(版本 5.4)(注意:5.4 是导入类型库列表中显示的内容)。

我将 SpeechSDK51.exe 安装到我的 W7 机器上。这来自:

http://www.microsoft.com/downloads/details.aspx?FamilyID=5e86ec97-40a7-453f-b0ee-6583171b4530&DisplayLang=en

以下代码在 Windows 7 上生成 4 种声音的列表,即使应该只有一种声音:

procedure TForm1.FormCreate(Sender: TObject);  
var  
    i: integer;  
    SOToken: ISpeechObjectToken;  
    SOTokens: ISpeechObjectTokens;  
begin  
    cbbVoices.Clear;  
    SOTokens := SpVoice1.GetVoices('', '');  

    for i := 0 to SOTokens.Count - 1 do begin  
        SOToken := SOTokens.Item(i);  
        cbbVoices.AddItem( SOToken.GetDescription(0), TObject(SOToken) );  
        SOToken._AddRef;  
    end;  
end;  

关于如何处理这个问题有什么建议吗?

谢谢,
肖恩

【问题讨论】:

    标签: delphi windows-7 text-to-speech sapi speech


    【解决方案1】:

    尚未确认,但我认为 Microsoft Sam、Microsoft Mike 和 Microsoft Mary 不适用于 Windows Vista 及更高版本。

    我猜你可以用5.1 SDK安装它们,所以当你查询声音时会报告它们,但可能与5.4引擎不兼容,它们不能使用。

    您可能希望使用 EngineProperties 属性过滤 GetVoices 以限制返回的内容。

    免责声明:所有这些都是未经测试/猜测/阅读文档的......

    【讨论】:

    • 谢谢弗朗索瓦。我想我没有足够清楚地解释这个问题。问题不在于 Mike 和 Marry 不在 W7 上工作(我不知道——我没有尝试过)。问题是 GetVoices 显示它们已安装在机器上,但它们没有。如果用户从 GetVoices 返回的语音列表中选择 Mary,我们会收到错误消息,因为该语音实际上并未安装在机器上。
    【解决方案2】:

    Microsoft Anna 是您拥有的唯一 64 位语音 其他的是32位引擎。 您的系统只能使用 64 位引擎(Anna),因此只能在面板中选择这个引擎。但其他的也已安装。如果您打开此文件:/%Windows%/SystemWOW64/Speech/SpeechUX/sapi.cpl,您将看到一个类似于控制面板的对话框,但现在您可以选择其中任何一种声音作为标准声音.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-29
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 2014-12-19
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      相关资源
      最近更新 更多