Я все еще не совсем уверен, что вы имеете в виду здесь. Вы говорите, что у вас есть много текстовых файлов, которые теперь имеют содержимое { "audioContent": "//NExAAQ4oIMABhEuDRESizqE7uehfMY8A...........
, и вам нужно заменить это содержимое только частью в фигурных скобках?
Если это так, вы можете сделать
Get-ChildItem -Path 'ThePathToLookForTheFiles' -File | ForEach-Object {
$_ | Set-Content -Value (($_ | Get-Content -Raw) -replace '^\{\s*"audioContent":\s*"([^}]+)\}', '$1')
}
Для любого нового текстового файла измените код с здесь немного, захватив результат из Invoke-WebRequest
и сохранение свойства audioContent
в текстовом файле:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
$params = @{
Method = 'POST'
Headers = $headers
ContentType = "application/json; charset=utf-8"
InFile = 'request.json'
Uri = "https://texttospeech.googleapis.com/v1/text:synthesize"
}
$content = Invoke-WebRequest @params | Select-Object -Expand Content
# save the textfile with just the base64 string:
Set-Content -Path 'TheFullPathAndFileName' -Value $content.audioContent
Надеюсь, это поможет