【发布时间】:2017-12-23 08:48:18
【问题描述】:
我正在编写一个使用 SpeechSynthesizer 根据请求生成波形文件的东西,但是我遇到了噼啪声的问题。奇怪的是直接输出到声卡就好了。
这个简短的 powershell 脚本演示了这个问题,尽管我正在用 C# 编写我的程序。
Add-Type -AssemblyName System.Speech
$speech = New-Object System.Speech.Synthesis.SpeechSynthesizer
$speech.Speak('Guybrush Threepwood, mighty pirate!')
$speech.SetOutputToWaveFile("${PSScriptRoot}\foo.wav")
$speech.Speak('Guybrush Threepwood, mighty pirate!')
这个应该做什么,输出到扬声器,然后将相同的声音保存为脚本旁边的“foo.wav”。
它的作用是输出到扬声器,然后将一个噼啪作响的旧电唱机声音版本保存为波形文件。我在三台不同的机器上对此进行了测试,虽然它们默认选择不同的声音(所有 Microsoft 都提供了默认声音),但它们在波形文件中听起来都像是从楼梯上掉下来的垃圾。
为什么?
编辑:我正在 Windows 10 Pro 上对此进行测试,最新更新在任务栏上添加了烦人的“人物”按钮。
编辑 3:It's even more noticeable with a female voice
编辑 4:The same voice as above, saved to file with TextAloud 3 - no cracking, no vertical spikes.
【问题讨论】:
-
无法复制。无论我是将结果保存在文件中还是立即播放语音,对我来说听起来都一样。
-
我能麻烦你把你的wav文件上传到某个地方吗?我使用的那个网站非常简单,不需要注册。如果只是我的声卡或 wav 文件播放设置,那么您的 wav 文件应该与我的相同。或者,你听到我的 wav 噼啪作响了吗?
-
我想我在instaud.io/1zsv分享了我的 foo.wav 文件
-
谢谢!然而,这似乎和我的一样有裂纹。人们甚至可以在 instaud.io 制作的图表上看到它们,作为“海盗”一词中间的两条垂直线,以及其他几个地方,尽管不那么明显。我确信当脚本直接输出到扬声器时我没有听到这些。我什至现在尝试了第四台机器,我最近得到的一台小型笔记本电脑 - 结果相同。
-
我在我的问题中添加了另一个声音文件,这次是女性声音。同样,裂纹也可以看到为垂直线,所以它不应该是播放设备。
标签: c# powershell audio text-to-speech