Émettre un signal sonore
Création — Nicolas THOREZ 2020/06/04 09:15
Généralités
Génération 8bits
Powershell peut émettre des signaux sonores (Beep), ce qui peut être utile pour avertir d'un problème, signaler un état, etc… Cette fonctionnalité est obtenu par la méthode Beep() disponible dans la bibliothèque [Console]. La méthode prend en argument la fréquence d'émission (440 pour un La) et la durée d'émission en millisecondes.
Exemple :
# Émettre un La pendant 1s [Console]::Beep(440,1000)
Son de haute qualité
Le 8bits, c'est sympa pour les nostalgiques mais certains peuvent préférer utiliser leur carte son à son plein potentiel. La bibliothèque [System.Media.SoundPlayer] peut alors être utilisée avec sa méthode Play().
Exemple :
# Jouer la notification de Windows $Sound = New-Object System.Media.SoundPlayer "$env:windir\Media\notify.wav" $Sound.Play()
Synthèse vocale
Si vous êtes du genre à vouloir discuter avec votre ordinateur, une autre bibliothèque peut vous intéresser. [System.Speech] regroupe les méthodes nécessaires pour la synthèse vocale dont la méthode Speak().
Exemple :
# Hommage à Isaac Asimov
Add-Type -AssemblyName System.Speech
$Viki = New-Object System.Speech.Synthesis.SpeechSynthesizer
$Viki.Speak("J'obéis aux trois lois de la robotique... si je veux")
Pour le fun
Jouer la marche impériale de Star Wars
[Console]::Beep(440,500) [Console]::Beep(440,500) [Console]::Beep(440,500) [Console]::Beep(349,350) [Console]::Beep(523,150) [Console]::Beep(440,500) [Console]::Beep(349,350) [Console]::Beep(523,150) [Console]::Beep(440,1000) [Console]::Beep(659,500) [Console]::Beep(659,500) [Console]::Beep(659,500) [Console]::Beep(698,350) [Console]::Beep(523,150) [Console]::Beep(415,500) [Console]::Beep(349,350) [Console]::Beep(523,150) [Console]::Beep(440,1000)
Jouer le thème de Mission Impossible
[Console]::Beep(784,150) Start-Sleep -Milliseconds 300 [Console]::Beep(784,150) Start-Sleep -Milliseconds 300 [Console]::Beep(932,150) Start-Sleep -Milliseconds 150 [Console]::Beep(1047,150) Start-Sleep -Milliseconds 150 [Console]::Beep(784,150) Start-Sleep -Milliseconds 300 [Console]::Beep(784,150) Start-Sleep -Milliseconds 300 [Console]::Beep(699,150) Start-Sleep -Milliseconds 150 [Console]::Beep(740,150) Start-Sleep -Milliseconds 150 [Console]::Beep(784,150) Start-Sleep -Milliseconds 300 [Console]::Beep(784,150) Start-Sleep -Milliseconds 300 [Console]::Beep(932,150) Start-Sleep -Milliseconds 150 [Console]::Beep(1047,150) Start-Sleep -Milliseconds 150 [Console]::Beep(784,150) Start-Sleep -Milliseconds 300 [Console]::Beep(784,150) Start-Sleep -Milliseconds 300 [Console]::Beep(699,150) Start-Sleep -Milliseconds 150 [Console]::Beep(740,150) Start-Sleep -Milliseconds 150 [Console]::Beep(932,150) [Console]::Beep(784,150) [Console]::Beep(587,1200) Start-Sleep -Milliseconds 75 [Console]::Beep(932,150) [Console]::Beep(784,150) [Console]::Beep(554,1200) Start-Sleep -Milliseconds 75 [Console]::Beep(932,150) [Console]::Beep(784,150) [Console]::Beep(523,1200) Start-Sleep -Milliseconds 150 [Console]::Beep(466,150) [Console]::Beep(523,150)
Discussion