powershell を使ってWindows に 「Alexa テレビをつけて」をしゃべってもらう(複数のボイス対応)
簡単なバッチファイル
PowerShell -command “$x=New-Object -ComObject SAPI.SpVoice ; $x.Speak(\"アレクサ、テレビをつけて\")"
複数ボイス対応バッチファイル
スクリプトファイルを作らずにバッチファイルで動かします
Haruka Sayaka Ayumi Ichiroの声を選べます
話すスピードと音量を調整できます
命令する言葉をパラメーターで指定できます
@echo off
set keyword=アレクサ、
set word1=%~1
if “%word1%" == “" (
set word=テレビをつけて。
) else (
set word=%word1%
)
set words=%keyword%%word%
echo %words%
::rate -10 – 10
set rate=0
::Volume 0 – 100
set Volume=100
set Voice=
set Voice=’Microsoft Haruka’
set Voice=’Microsoft Sayaka’
set Voice=’Microsoft Ayumi’
set Voice=’Microsoft Ichiro’
if “%Voice%" == “" goto syori1
goto syori2
:syori1
PowerShell -command “$x=New-Object -ComObject SAPI.SpVoice ;$x.rate=%rate%;$x.Volume=%Volume%; $x.Speak(\"%words%\")"
goto end1
:syori2
PowerShell -command ^
$sp = New-Object -ComObject SAPI.SpVoice; ^
$cat = New-Object -ComObject SAPI.SpObjectTokenCategory; ^
$cat.SetId('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices’, $false); ^
$oldspVoice = $sp.Voice; ^
foreach ($token in $cat.EnumerateTokens()){ ^
If($token.GetAttribute('Name’) -eq %Voice%){ ^
Write-Host $token.GetAttribute('Name’); ^
$sp.Voice = $token; ^
$sp.rate=%rate%; ^
$sp.Volume=%Volume%; ^
$sp.Speak(\"%words%\"); ^
break ^
}}; ^
$sp.Voice = $oldspVoice;
timeout /t 3
goto end1
:end1
ディスカッション
コメント一覧
まだ、コメントがありません