如何在speechSynthesis中添加语音/语言?

时间:2017-11-19 17:21:04

标签: javascript text-to-speech voice speech-synthesis webspeech-api

当我在Chrome中运行<a href="#" ng-click="sortType='urgencyNumber';sortReverse=!sortReverse">Urgency <span class="glyphicon glyphicon-triangle-bottom" ng-show="sortType=='urgencyNumber' && !sortReverse"></span> <span class="glyphicon glyphicon-triangle-top" ng-show="sortType=='urgencyNumber' && sortReverse"></span> </a> 时,我会收到可能的声音列表。该列表会根据Chrome的计算机和版本而变化。

有什么方法可以扩展支持并添加更多声音吗?

我觉得这可以通过要求用户下载所选语言的语音文件来完成。这样的文件存在吗?

编辑:

这需要适用于Windows和Mac计算机。

它也需要简单,所以没有脚本或任何需要广泛技术知识的东西。我希望下载并安装&#34;事物类型

1 个答案:

答案 0 :(得分:3)

如何从MICROSOFT EDGE到CHROME和FIREFOX添加更多语音(仅限Windows 10秋季创作者更新或更高版本)

您应首先使用show list语音测试:show available voice on browser

chrome有本地和服务器语音,边缘有本地并可以下载更多,firefox只有3个支持的语音被Windows注册锁定。

这是要解锁的脚本:

如果您不确定如何运行powershell脚本:

点击开始

搜索&#39; Powershell&#39;

启动Powershell(因为这是编辑LocalMachine键,您需要以管理员身份运行)。将脚本复制并粘贴到控制台中。按enter键。

$sourcePath = 'HKLM:\software\Microsoft\Speech_OneCore\Voices\Tokens' #Where the OneCore voices live
$destinationPath = 'HKLM:\SOFTWARE\Microsoft\Speech\Voices\Tokens' #For 64-bit apps
$destinationPath2 = 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\SPEECH\Voices\Tokens' #For 32-bit apps
cd $destinationPath
$listVoices = Get-ChildItem $sourcePath
foreach($voice in $listVoices)
{
$source = $voice.PSPath #Get the path of this voices key
copy -Path $source -Destination $destinationPath -Recurse
copy -Path $source -Destination $destinationPath2 -Recurse
}

在我的示例机器上运行并重新启动后,我有以下语音可用于api

Microsoft David Desktop; Microsoft Zira Desktop; 微软Zira Mobile; (与桌面版相同) Microsoft Mark Mobile;

我发现这些声音优于桌面版本,而且多样性总是很好

您可以在重新启动后在此处测试新语音:show available voice on browser

在这里,我可以在firefox上拥有10个声音,而不是3个声音。即使我可以使用Windows语言安装Microsoft An的越南语音,我的Firefox也可以将越南语视为优势。 Microsoft An List voice

来源reddit.com