Azure Cognitive Services - API пакетной транскрипции отвечает сообщением об ошибке "URI записи недействителен".
Шаги последовали:
- Я создал речевой сервис в Западной Америке.
- У меня есть правильные заголовки
(Content-Type and Ocp-Apim-Subscription-Key)
- Я делаю POST-запрос к https://westus.cris.ai/api/speechtotext/v2.0/transcriptions/ с полезной нагрузкой запроса ниже
{
"recordingsUrl": "https://transcribehm97c1.blob.core.windows.net/audio-files/2019-04-04_Blockchain%20explained%20with%20TruStory%27s%20Preethi%20Kasireddy.mp3?st=2019-05-27T12%3A19%3A27Z&se=2019-12-31T12%3A19%3A00Z&sp=rl&sv=2018-03-28&sr=b&sig=HFBvGl1pmCM95MNU9U3yniMNXrUMT6RmPb36F32cxrY%3D",
"models": [],
"locale": "en-US",
"name": "I dont know why this is not working",
"description": "Someone please send help",
"properties": {
"ProfanityFilterMode": "Masked",
"PunctuationMode": "DictatedAndAutomatic"
}
}
- Я получаю ответ "202 Принято" с заголовками ниже. Это подтверждает, что тело запроса является действительным.
location: https://westus.cris.ai/api/speechtotext/v2.0/transcriptions/69b7abf4-6383-4490-88a9-9fd42a77e470
- Когда я делаю запрос GET в указанное место, я вижу это
{
"recordingsUrl": "https://transcribehm97c1.blob.core.windows.net/audio-files/2019-04-04_Blockchain explained with TruStory's Preethi Kasireddy.mp3?st=2019-05-27T12:19:27Z&se=2019-12-31T12:19:00Z&sp=rl&sv=2018-03-28&sr=b&sig=HFBvGl1pmCM95MNU9U3yniMNXrUMT6RmPb36F32cxrY%3D",
"resultsUrls": {},
"models": [“I have removed this for brevity”],
"statusMessage": "The recordings URI is invalid.",
"id": "69b7abf4-6383-4490-88a9-9fd42a77e470",
"createdDateTime": "2019-05-27T12:43:39Z",
"lastActionDateTime": "2019-05-27T12:43:50Z",
"status": "Failed",
"locale": "en-US",
"name": "I dont know why this is not working",
"description": "Someone please send help",
"properties": {
"ProfanityFilterMode": "Masked",
"PunctuationMode": "DictatedAndAutomatic"
}
}
- Транскрипция не выполняется для одних URL-адресов, в то время как для других - двоичные объекты в том же хранилище, хотя они все являются действительными URL-адресами. URI SAS в запросе действителен до конца года.
- Я повторил один и тот же запрос несколько раз с помощью кода и почтальона, и он не прошел.
Ссылка на страницу Swagger: https://westus.cris.ai/swagger/ui/index
2 ответа
Имя аудиофайла контейнера Blob не должно содержать пробелов. Это может вызвать проблему.
Вот две вещи, которые помогли мне создать URL-адрес SAS для передачи в службу транскрипции Azure Speech Batch. Я с разочарованием получал сообщение «Ошибка аутентификации для записи URI». сообщение.
- При переходе к файлу через интерфейс хранилища лишние пробелы будут скрыты. Например, мой файл назывался
Weekly standup.mp4
(два пробела), но в интерфейсе хранилища это выглядело какWeekly standup.mp4
(одно место). Лучше всего получить имя вашего большого двоичного объекта программно, чтобы затем передать его в следующую задачу, а не копировать его из интерфейса. - При создании URL-адреса SAS также укажите дату начала и дату истечения срока действия:
from azure.storage.blob import generate_blob_sas, BlobSasPermissions
from datetime import datetime, timezone, timedelta
sas_token = generate_blob_sas(
account_name=account_name,
account_key=account_key,
container_name = container_name,
blob_name = blob_name,
permission=BlobSasPermissions(read=True),
start=datetime.now(timezone.utc) - timedelta(hours=8),
expiry=datetime.now(timezone.utc) + timedelta(hours=8)
)