Batch Datei text to speak?
hallo ich habe folgen des skript einer batch datei
@echo off
rem Umlaute erlauben
chcp 65001>nul
rem pfad für das Hilfsscript
set "sayJS=%temp%\say.js"
set "Speed=-1"
set "Volume=100"
echo s=new ActiveXObject('SAPI.SpVoice');s.Rate=%Speed%;s.Volume=%Volume%;a='';for (i=0;i^<WScript.Arguments.length;i++){a+=WScript.Arguments(i)+' '};s.Speak(a,0)>"%sayJS%"
set talk=cscript //nologo "%sayJS%"
%talk% Hallo Welt!
und wollte fragen ob es möglich ist die stimme der sprecherin zu ändern?
Vielen Dank im Voraus
1 Antwort
Für SAPI.SpVoice sind lediglich die unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens installierten Stimmen verfügbar. Für ein deutschsprachiges System ist das lediglich "Hedda" . Wenn auch das En-US-Sprachpacket installiert sein sollte, sind auch die Stimmen "David" und "Zira" verfügbar.
Zum Wählen der Stimme ändere den Code:
@echo off
rem Umlaute erlauben
chcp 65001>nul
rem pfad für das Hilfsscript
set "sayJS=%temp%\say.js"
set "Speed=-1"
set "Volume=100"
set "Voice=0" &rem Ausprobieren welche Nummer welcher Stimme/Sprache entspricht
echo s=new ActiveXObject('SAPI.SpVoice');s.Voice = s.GetVoices().Item(%Voice%);s.Rate=%Speed%;s.Volume=%Volume%;a='';for (i=0;i^<WScript.Arguments.length;i++){a+=WScript.Arguments(i)+' '};s.Speak(a,0)>"%sayJS%"
set talk=cscript //nologo "%sayJS%"
%talk% Hallo Welt!
...ist der Wert für Voice nicht verfügbar. wird ein Fehlermeldung in der Console ausgegeben: ...say.js(1, 37) (null): 0x80045039
Das folgende ist nicht Systemkonform und könnte in anderen Programmen mit Sprachausgabe zu unvorhersehbaren Nebenwirkungen oder Abstürzen führenUm die Stimmen aus HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens auch für SpVoice verfügbar machen, kann man die gewünschten Sprachschlüssel (mit Unterschlüsseln) nach HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens kopieren. (Deutsche Stimmen: Katja und Stefan.) Adminrechte benötigt!