如何使用Azure Cognitive Services文本到语音REST API和PowerShell处理纯文本文件?

2wnc66cl  于 2023-04-07  发布在  Shell
关注(0)|答案(1)|浏览(146)

我正在尝试使用Azure Cognitive Services文本到语音REST API和Powershell处理纯文本文件以创建wav音频文件。我不明白如何执行此操作,而不是直接将内容(特别是在$Content中)添加到脚本以及如何在此过程中使用自定义词典。我删除了部分脚本(auth)以简化。谢谢。

$AudioOutputType='audio-24khz-96kbitrate-mono-mp3'

$XSearchAppID='000000000000000000000'

$XSearchClientID='00000000000000000000000'

$UserAgent='PowerShellTextToSpeechApp'

$Header=@{ `

'Content-Type' = 'application/ssml+xml'; `

'X-Microsoft-OutputFormat' = $AudioOutputType; `

'X-Search-AppId' = $XSearchAppId; `

'X-Search-ClientId' = $XSearchClientId; `

'Authorization' = $AccessToken `

}

$Locale='es-MX'

$ServiceNameMapping='Microsoft Server Speech Text to Speech Voice (es-MX, DaliaNeural)'

$Content='\path\Test.txt'

$Body=''+$Content+''

$Endpoint= 'https://speech.platform.bing.com/synthesize'

$Method='POST'

$ContentType='application/ssml+xml'

$Filename='output.wav'

Invoke-RestMethod -Uri $Endpoint -Method $Method `

-Headers $Headers -ContentType $ContentType `

-Body $Body -UserAgent $UserAgent `

-OutFile $Filename

谢谢大家!

0lvr5msh

0lvr5msh1#

我很难找到你正在使用的确切的API文档,但根据我在下面的Azure Cog中找到的内容。服务文档...
如何从文本中合成语音
Deploy and use your voice model
您可以将API REST请求的Body中需要的XML格式和文本文件内容拼接在一起。

$xmlStart = @'
<speak version="1.0" xml:lang="en-US">
    <voice xml:lang="en-US" xml:gender="Female" name="en-US-JennyNeural">
'@

$Content = Get-Content -Path [Path to your text file]

$xmlEnd = @'
    </voice>
</speak>
'@

$ContentToSpeak = $xmlStart + $Content + $xmlEnd

尚未使用Azure认知文本到语音转换,因此这只是不知道您选择的API文档的最佳猜测。

**编辑:**我想我找到了。看起来这里是你得到你的文档的地方。

Windows PowerShell and the Text-to-Speech REST API (Part 3)
这是第4部分的XML内容。
Windows PowerShell and the Text-to-Speech REST API (Part 4)

相关问题