Table des matières

Émettre un signal sonore

CréationNicolas 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)