0

请教我如何让 Powershell 自动将其 tts 输出保存到 TEXT 文件,因为我得到的只是一个像这样的长字符串:

{ "audioContent": "//NExAAQ4oIMABhEuDRESizqE7uehfMY8A............

我必须处理超过 1400 个文件 :( 怎么办?还有上传超过 5000 个符号的文本的方法吗?也可以从 HTML 自动创建 SSML 吗?

我已按照本文档中的说明制作了所有内容

4

1 回答 1

1

我仍然不太清楚你的意思。你是说你有很多文本文件现在有内容{ "audioContent": "//NExAAQ4oIMABhEuDRESizqE7uehfMY8A...........,你需要用大括号之间的部分替换这些内容吗?

如果是这种情况,你可以这样做

Get-ChildItem -Path 'ThePathToLookForTheFiles' -File | ForEach-Object {
    $_ | Set-Content -Value (($_ | Get-Content -Raw) -replace '^\{\s*"audioContent":\s*"([^}]+)\}', '$1')
}

对于任何新的文本文件,通过捕获结果并将属性保存到文本文件来稍微更改此处的代码:Invoke-WebRequestaudioContent

$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

希望有帮助

于 2020-02-18T16:23:33.537 回答