eightban's memo

残しておきたい記事をまとめてみました。このブログに書いてあるドキュメントやブログで配布しているファイルの使用によって発生するいかなる損害に対してもこのブログの管理者は責任を負いません。使用する場合は自己責任のもとに使用してください。

PowerShell  windows アクセシビリティ

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

参考

https://qiita.com/7shi/items/7781516d6746e29c03b4

-PowerShell , windows, アクセシビリティ

Copyright© eightban's memo , 2024 All Rights Reserved Powered by STINGER.