File size: 1,267 Bytes
47211d3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
param(
 [string]$InputAudio,
 [string]$RegionsJson,
 [string]$OutputDirectory,
 [switch]$VerifyOnly
)
$ErrorActionPreference = 'Stop'
$runner = Join-Path $PSScriptRoot 'run_rvc.py'
if ($VerifyOnly) {
 & python -B $runner --verify-only
 if ($LASTEXITCODE -ne 0) { throw 'Release verification failed.' }
 return
}
$runtime = Get-Content -LiteralPath (Join-Path $PSScriptRoot 'runtime.local.json') -Raw -Encoding utf8 | ConvertFrom-Json
function To-WslPath([string]$Value) {
 $full = [IO.Path]::GetFullPath($Value).Replace('\','/')
 if ($full -notmatch '^[A-Za-z]:/') { throw 'Use an absolute local drive path.' }
 return '/mnt/' + $full.Substring(0,1).ToLower() + $full.Substring(2)
}
if (-not $InputAudio) { throw 'Supply -InputAudio with a clean vocal WAV or FLAC.' }
$taskArgs = @((To-WslPath $runner), '--input', (To-WslPath ((Resolve-Path -LiteralPath $InputAudio).Path)))
if ($RegionsJson) { $taskArgs += @('--regions', (To-WslPath ((Resolve-Path -LiteralPath $RegionsJson).Path))) }
if ($OutputDirectory) { $taskArgs += @('--output-dir', (To-WslPath $OutputDirectory)) }
& wsl.exe -d $runtime.wsl_distribution -e $runtime.wsl_python -B @taskArgs
if ($LASTEXITCODE -ne 0) { throw 'Conversion failed; inspect the new output directory and keep the native audio.' }