使用python更改powershell tts命令讲述人

时间:2018-07-03 18:42:32

标签: python windows powershell text-to-speech

有人知道如何在此tts powershell命令中更改声音吗?

BUILD.bazel

它必须尽可能小,因为我正在使用pythons os.system()命令实现此目的

1 个答案:

答案 0 :(得分:3)

我的仓库中脚本的快速翻译:

## SelVoiceSpeak.ps1
Add-Type -AssemblyName "System.Speech"
$speaker = new-object System.Speech.Synthesis.SpeechSynthesizer
$speaker.SetOutputToDefaultAudioDevice()
write-host "These voices are installed:`r`n" -ForegroundColor Yellow -BackgroundColor Black
$cntr = 0;
$voices = $speaker.GetInstalledVoices() | Where Enabled | ForEach VoiceInfo
$voices | %{$cntr++;write-host "[$cntr] $($_.Name)" -ForegroundColor Green}
$choice = Read-Host "`r`nChoose a name [1-$($voices.length)]"
if ($choice -gt 0 -and $choice -le $voices.length){
    $voice = $voices[$choice -1].Name
    $speaker.SelectVoice($voice)
} else {
    write-Host "no valid choice" -ForegroundColor Red
    exit
}
$text = Read-Host "`r`nEnter text to speak"
write-host "`r`nspeaking now!" -BackgroundColor DarkCyan -ForegroundColor White
$speaker.Speak($text)

非常难看的颜色,示例输出:

> .\SelVoiceSpeak.ps1
These voices are installed:

[1] Microsoft Hedda Desktop
[2] Microsoft Zira Desktop

Choose a name [1-2]: 2

Enter text to speak: hello world!

speaking now!

编辑:未经检查的最小脚本,
说固定的声音和固定的文字,可以与“;”连接一行:

Add-Type -AssemblyName "System.Speech"
$speaker = new-object System.Speech.Synthesis.SpeechSynthesizer
$speaker.SelectVoice("Microsoft David Desktop")
$speaker.Speak("This is a text")