Reputation: 173
I would like to use the Microsoft Azure Cognitive Service Speech-to-text. It offers a REST API, which I succesfully have used. I can point to an Azure blob storage using a SAS URI, and the files in the container are transcribed.
My problem is, that when I try to retrieve the transcription results from the API, they are published to a public url. Since voice data can be sensitive, I would like to keep the results stored privately. Is there any way to do this?
I does not seem like it is an option in the API schema, although you can set a destinationContainerUrl. I have tried to set the destinationContainerUrl, but the result does not appear in the container.
I have only used the API reference, which is why I am not posting any code.
Upvotes: 1
Views: 1282
Reputation: 173
Ok. So the solution was super simple. I just did the post request json wrong. destinationContainerUrl needs to be under properties, as shown below:
{"contentUrls": ["LINK-TO-BLOB-SAS-URI-TOKEN"], "properties": { "diarizationEnabled": false, "wordLevelTimestampsEnabled": false, "punctuationMode": "DictatedAndAutomatic", "profanityFilterMode": "Masked", "destinationContainerUrl": "LINK-TO-BLOB-SAS-URI-TOKEN" }, "locale": "en-US", "displayName": "Transcription from blob to blob" }
Upvotes: 0
Reputation: 91
You've found the correct option. Using destinationContainerUrl will write the results into this container. Make sure you provide a container SAS which allows listing and writing. When the job succeeds, the results should be there. Please check that status of your job, maybe it was set to failed.
Documentation about transcriptions: https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/batch-transcription
If the job succeeds and the files are not on this container, please let us know the $.self link of the job and the creation time, to help us gathering the logs.
Upvotes: 1