рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирдП рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╕рднреА рдзреНрд╡рдирд┐ рдЖрдЙрдЯрдкреБрдЯ рдХреИрдкреНрдЪрд░ рдХрд░реЗрдВ:
$waveIn = new-object NAudio.Wave.WasapiLoopbackCapture
рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдзреНрд╡рдирд┐ рдХреЛ рдкрд┐рдЫрд▓реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЗ рд╣реИрдВ (рд╣реЗрдбрдлрд╝реЛрди рдЕрдкрдиреЗ рдХрдиреЗрдХреНрдЯрд░ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ) рдХреНрд▓рд┐рдХ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП 100ms рдХреА рджреЗрд░реА рд╕реЗ:
$waveOut = new-object NAudio.Wave.DirectSoundOut($defaultDeviceId, 100)
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореЛрдиреЛ рдХрдирд╡рд░реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреАрд░рд┐рдпреЛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ 16 рдмрд┐рдЯ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЙрдкрдпреБрдХреНрдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рдХрдирд╡рд░реНрдЯрд░ рднреА рд╣реИред рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
$waveProvider16 = new-object NAudio.Wave.WaveFloatTo16Provider($waveInProvider) $monoProvider16 = new-object NAudio.Wave.StereoToMonoProvider16($waveProvider16)
рджрд╛рдПрдВ рдФрд░ рдмрд╛рдПрдВ рдЪреИрдирд▓ рдХреЗ рд▓рд┐рдП рд╡реЙрд▓реНрдпреВрдо рд╕реЗрдЯ рдХрд░реЗрдВ:
$monoProvider16.leftVolume = 1 $monoProvider16.rightVolume = 1
рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп:
$waveOut.init($monoProvider16)
рд╣рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
$waveOut.play() $waveIn.startRecording()