Spaces:
Running
Running
$ErrorActionPreference = "Stop"; | |
# Send the POST request with the form data | |
$Uri = "http://localhost:8080/v1/audio/transcriptions" | |
function MultiPart($data){ | |
$FormBoundary = [System.Guid]::NewGuid().ToString(); | |
$BodyLines = @() | |
$Fields = @($data.keys) | |
foreach($FieldName in $Fields){ | |
$FieldValue = $data[$FieldName]; | |
$BodyLines += "--$FormBoundary" | |
if($FieldValue -is [IO.FileInfo]){ | |
$File = $FieldValue | |
$BodyLines += "Content-Disposition: form-data; name=`"$FieldName`"; filename=`"$($File.name)`"" | |
$BodyLines += "Content-Type: application/octet-stream" | |
$FileBytes = [System.IO.File]::ReadAllBytes($File.FullName); | |
$FieldValue = [System.Text.Encoding]::GetEncoding("iso-8859-1").GetString($FileBytes) | |
} else { | |
$BodyLines += "Content-Disposition: form-data; name=`"$FieldName`"" | |
} | |
$BodyLines += "" | |
$BodyLines += $FieldValue | |
} | |
$BodyLines += "--$FormBoundary--" | |
$BodyFinal = $BodyLines -Join "`r`n" | |
Invoke-WebRequest @Args -method POST -body $BodyFinal -ContentType "multipart/form-data; boundary=$FormBoundary" | |
} | |
# Create the form data payload | |
$FormData = @{ | |
"file" = (Get-Item .\SampleSmall.wav) | |
model = "Systran/faster-whisper-small" | |
} | |
$RawResp = MultiPart $FormData -Uri $Uri | |
$result = [System.Text.Encoding]::UTF8.GetString($RawResp.RawContentStream.ToArray()) | |
# Output the response from the server | |
$result | |