System.Speech.Synthesis中并非所有已安装的语音都可用 [英] Not all installed voices available in System.Speech.Synthesis

查看:731
本文介绍了System.Speech.Synthesis中并非所有已安装的语音都可用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个使用System.Speech.Synthesis的VB .Net应用程序.在Windows 10台式机(美国英语)上,"TTS设置"显示了三种可用的声音-Microsoft David Mobile,Microsoft Zira Mobile和Microsoft Mark Mobile.  但是当我 使用SpeechSynthesizer类的GetInstalledVoices方法,它仅列出David和Zira.  为什么无法访问Mark?我还尝试了SAPI 5.4的SpeechLib COM接口SpVoiceGetVoices方法,结果相同.  也经过测试 在多台计算机上运行,​​包括一台运行VS 2017和最新Windows 10 SDK的计算机.  我是否需要安装其他东西才能使Mark正常工作?我也收到过使用其他语言设置的用户的类似投诉(他们可以访问两个语言设置 三种可用的Microsoft声音之一.

I have a VB .Net app which uses System.Speech.Synthesis.  On my Windows 10 desktops (US English language) the TTS Settings shows three voices available - Microsoft David Mobile, Microsoft Zira Mobile, and Microsoft Mark Mobile.  But when I use the SpeechSynthesizer class GetInstalledVoices method, it only lists David and Zira.  Why can't it access Mark?  I have also tried the SAPI 5.4 SpeechLib COM interface SpVoice GetVoices method with the same result.  Also tested on multiple machines, including one running VS 2017 with the latest Windows 10 SDK.  Do I need to install something else in order to get Mark to work?  I have had similar complaints from users running other language settings (they could access two of the three available Microsoft voices).

Jeff

推荐答案

声音甚至不一样,您在Windows 10中看到的是移动声音,它们可以协同工作Microsoft OS软件.在语音中,您会听到.Net声音.

The voices are not even the same, what you see in Windows 10 are the mobile voices, they work with Microsoft OS Software. In Speech you get the .Net voices. 

奇怪但真实.您可以通过添加该语言来添加英语榛树.如果您将其删除,声音将保持不变.

Strange but true. You can add the English Hazel by adding that language. If you remove it than again the voice stays. 

也许我们对此也有相同的看法.

Probably we think the same about this. 


这篇关于System.Speech.Synthesis中并非所有已安装的语音都可用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆