Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Служба "Речь" позволяет преобразовывать текст в синтезированную речь и получать список поддерживаемых голосов для региона с помощью интерфейсов REST API. В этой статье вы узнаете о параметрах авторизации, параметрах запросов, структуре запроса и интерпретации ответа.
Совет
Варианты использования текста для REST API речи ограничены. Используйте его только в тех случаях, когда нельзя использовать пакет SDK Речи. Например, с помощью пакета SDK службы "Речь" можно подписаться на события для получения дополнительных сведений о тексте для обработки речи и результатов.
Текст для речи REST API поддерживает нейронный текст для речи голоса во многих языковых стандартах. Каждая доступная конечная точка связана с регионом. Требуется ключ API для конечной точки или региона, который планируется использовать. Далее приведены ссылки для получения дополнительных сведений:
- Полный список голосов см. в разделе Поддержка языков и голосов в службе "Речь".
- Сведения о доступности по регионам см. в разделе Поддерживаемые регионы для службы "Речь".
- Сведения об Azure для государственных организаций и Microsoft Azure, управляемых конечными точками 21Vianet, см. в этой статье о национальных облаках.
Внимание
Затраты зависят от стандартных голосов и пользовательских голосов. Дополнительные сведения см. в ценах на речь в тексте.
Прежде чем использовать текст для распознавания речи REST API, необходимо выполнить обмен маркерами в рамках проверки подлинности для доступа к службе. Дополнительные сведения см. в разделе Authenticate to the Speech API (Аутентификация в API речи).
Получение списка голосов
Вы можете использовать конечную точку tts.speech.microsoft.com/cognitiveservices/voices/list
для получения полного списка голосов для определенного региона или конечной точки. Префикс конечной точки списка голосов с регионом, чтобы получить список голосов для этого региона. Например, чтобы получить список голосов для westus
региона, используйте конечную точку https://westus.tts.speech.microsoft.com/cognitiveservices/voices/list
. Список всех поддерживаемых регионов см. в документации по регионам.
Примечание.
Голоса и стили в предварительной версии доступны только в трех регионах службы: восточная часть США, Западная Европа и Юго-Восточная Азия.
Заголовки запросов
В этой таблице перечислены обязательные и необязательные заголовки для текстовых запросов речи:
Верхний колонтитул | Описание | Обязательно или необязательно |
---|---|---|
Ocp-Apim-Subscription-Key |
Ключ ресурса службы "Речь". | Обязательный, если не предоставлен заголовок Authorization . |
Authorization |
Маркеру авторизации предшествует слово Bearer . Дополнительные сведения см. в разделе Authenticate to the Speech API (Аутентификация в API речи). |
Обязательный, если не предоставлен заголовок Ocp-Apim-Subscription-Key . |
Текст запроса
Для запросов GET
к этой конечной точке текст запроса не требуется.
Образец запроса
Для этого запроса требуется только заголовок авторизации.
GET /cognitiveservices/voices/list HTTP/1.1
Host: westus.tts.speech.microsoft.com
Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY
Ниже приведен пример команды curl:
curl --location --request GET 'https://YOUR_RESOURCE_REGION.tts.speech.microsoft.com/cognitiveservices/voices/list' \
--header 'Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY'
Пример ответа
Вы должны получить ответ с текстом JSON, который включает все поддерживаемые языковые стандарты, голоса, пол, стили и другие сведения. Свойство WordsPerMinute
для каждого голоса можно использовать для оценки длины выходной речи. В этом примере JSON показаны частичные результаты для иллюстрации структуры ответа:
[
// Redacted for brevity
{
"Name": "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
"DisplayName": "Jenny",
"LocalName": "Jenny",
"ShortName": "en-US-JennyNeural",
"Gender": "Female",
"Locale": "en-US",
"LocaleName": "English (United States)",
"StyleList": [
"assistant",
"chat",
"customerservice",
"newscast",
"angry",
"cheerful",
"sad",
"excited",
"friendly",
"terrified",
"shouting",
"unfriendly",
"whispering",
"hopeful"
],
"SampleRateHertz": "24000",
"VoiceType": "Neural",
"Status": "GA",
"ExtendedPropertyMap": {
"IsHighQuality48K": "True"
},
"WordsPerMinute": "152"
},
// Redacted for brevity
{
"Name": "Microsoft Server Speech Text to Speech Voice (en-US, JennyMultilingualNeural)",
"DisplayName": "Jenny Multilingual",
"LocalName": "Jenny Multilingual",
"ShortName": "en-US-JennyMultilingualNeural",
"Gender": "Female",
"Locale": "en-US",
"LocaleName": "English (United States)",
"SecondaryLocaleList": [
"de-DE",
"en-AU",
"en-CA",
"en-GB",
"es-ES",
"es-MX",
"fr-CA",
"fr-FR",
"it-IT",
"ja-JP",
"ko-KR",
"pt-BR",
"zh-CN"
],
"SampleRateHertz": "24000",
"VoiceType": "Neural",
"Status": "GA",
"WordsPerMinute": "190"
},
// Redacted for brevity
{
"Name": "Microsoft Server Speech Text to Speech Voice (ga-IE, OrlaNeural)",
"DisplayName": "Orla",
"LocalName": "Orla",
"ShortName": "ga-IE-OrlaNeural",
"Gender": "Female",
"Locale": "ga-IE",
"LocaleName": "Irish (Ireland)",
"SampleRateHertz": "24000",
"VoiceType": "Neural",
"Status": "GA",
"WordsPerMinute": "139"
},
// Redacted for brevity
{
"Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, YunxiNeural)",
"DisplayName": "Yunxi",
"LocalName": "云希",
"ShortName": "zh-CN-YunxiNeural",
"Gender": "Male",
"Locale": "zh-CN",
"LocaleName": "Chinese (Mandarin, Simplified)",
"StyleList": [
"narration-relaxed",
"embarrassed",
"fearful",
"cheerful",
"disgruntled",
"serious",
"angry",
"sad",
"depressed",
"chat",
"assistant",
"newscast"
],
"SampleRateHertz": "24000",
"VoiceType": "Neural",
"Status": "GA",
"RolePlayList": [
"Narrator",
"YoungAdultMale",
"Boy"
],
"WordsPerMinute": "293"
},
// Redacted for brevity
]
Коды состояния HTTP
Код состояния HTTP для каждого ответа указывает на успешное выполнение или возникновение распространенных ошибок.
Код состояния HTTP | Описание | Возможная причина |
---|---|---|
200 | ХОРОШО | Запрос выполнен успешно. |
400 | Недопустимый запрос | Обязательный параметр отсутствует, пустой или его значение равно нулю. Или переданное либо обязательному, либо необязательному параметру значение является недопустимым. Часто это связано с тем, что заголовок слишком длинный. |
401 | Не авторизовано | Запрос не авторизован. Убедитесь, что ключ ресурса или маркер действителен и в правильном регионе. |
429 | Слишком много запросов | Превышена квота или скорость запросов, разрешенных для ресурса. |
502 | Недопустимый шлюз | Существует проблема с сетью или на стороне сервера. Это состояние может также указывать на недопустимые заголовки. |
Преобразование текста в речь
Конечная точка cognitiveservices/v1
позволяет преобразовать текст в речь с помощью Языка разметки синтеза речи (SSML).
Регионы и конечные точки
Эти регионы поддерживаются для преобразования текста в речь через REST API. Обязательно выберите конечную точку, соответствующую региону ресурса службы "Речь".
Стандартные голоса
Используйте эту таблицу, чтобы определить доступность нейронных голосов по регионам и конечным точкам.
Область/регион | Конечная точка |
---|---|
Восточная Австралия | https://australiaeast.tts.speech.microsoft.com/cognitiveservices/v1 |
Южная Бразилия | https://brazilsouth.tts.speech.microsoft.com/cognitiveservices/v1 |
Центральная Канада | https://canadacentral.tts.speech.microsoft.com/cognitiveservices/v1 |
Центральная часть США | https://centralus.tts.speech.microsoft.com/cognitiveservices/v1 |
Восточная Азия | https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1 |
Восточная часть США | https://eastus.tts.speech.microsoft.com/cognitiveservices/v1 |
Восточная часть США 2 | https://eastus2.tts.speech.microsoft.com/cognitiveservices/v1 |
Центральная Франция | https://francecentral.tts.speech.microsoft.com/cognitiveservices/v1 |
Центрально-Западная Германия | https://germanywestcentral.tts.speech.microsoft.com/cognitiveservices/v1 |
Центральная Индия | https://centralindia.tts.speech.microsoft.com/cognitiveservices/v1 |
Восточная Япония | https://japaneast.tts.speech.microsoft.com/cognitiveservices/v1 |
Западная Япония | https://japanwest.tts.speech.microsoft.com/cognitiveservices/v1 |
Западная Индия Jio | https://jioindiawest.tts.speech.microsoft.com/cognitiveservices/v1 |
Республика Корея, центральный регион | https://koreacentral.tts.speech.microsoft.com/cognitiveservices/v1 |
Центрально-северная часть США | https://northcentralus.tts.speech.microsoft.com/cognitiveservices/v1 |
Северная Европа | https://northeurope.tts.speech.microsoft.com/cognitiveservices/v1 |
Восточная Норвегия; | https://norwayeast.tts.speech.microsoft.com/cognitiveservices/v1 |
Центрально-южная часть США | https://southcentralus.tts.speech.microsoft.com/cognitiveservices/v1 |
Юго-Восточная Азия | https://southeastasia.tts.speech.microsoft.com/cognitiveservices/v1 |
Центральная Швеция | https://swedencentral.tts.speech.microsoft.com/cognitiveservices/v1 |
Северная Швейцария | https://switzerlandnorth.tts.speech.microsoft.com/cognitiveservices/v1 |
Западная Швейцария | https://switzerlandwest.tts.speech.microsoft.com/cognitiveservices/v1 |
Северная часть ОАЭ; | https://uaenorth.tts.speech.microsoft.com/cognitiveservices/v1 |
US Gov (Аризона) | https://usgovarizona.tts.speech.azure.us/cognitiveservices/v1 |
US Gov (Вирджиния) | https://usgovvirginia.tts.speech.azure.us/cognitiveservices/v1 |
южная часть Соединенного Королевства | https://uksouth.tts.speech.microsoft.com/cognitiveservices/v1 |
центрально-западная часть США | https://westcentralus.tts.speech.microsoft.com/cognitiveservices/v1 |
Западная Европа | https://westeurope.tts.speech.microsoft.com/cognitiveservices/v1 |
западная часть США | https://westus.tts.speech.microsoft.com/cognitiveservices/v1 |
западная часть США 2 | https://westus2.tts.speech.microsoft.com/cognitiveservices/v1 |
Западная часть США — 3 | https://westus3.tts.speech.microsoft.com/cognitiveservices/v1 |
Совет
Голоса в предварительной версии доступны только в следующих трех регионах: Восточная часть США, Западная Европа и Юго-Восточная Азия.
Пользовательские голоса
Если вы создали пользовательский голос, используйте конечную точку, которую вы создали. Также можно использовать следующие конечные точки. Замените {deploymentId}
идентификатором развертывания для пользовательской голосовой модели.
Область/регион | Обучение | Развертывание | Конечная точка |
---|---|---|---|
Восточная Австралия | Да | Да | https://australiaeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Южная Бразилия | нет | Да | https://brazilsouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Центральная Канада | нет | Да | https://canadacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Центральная часть США | нет | Да | https://centralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Восточная Азия | нет | Да | https://eastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Восточная часть США | Да | Да | https://eastus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Восточная часть США 2 | Да | Да | https://eastus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Центральная Франция | нет | Да | https://francecentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Центрально-Западная Германия | нет | Да | https://germanywestcentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Центральная Индия | Да | Да | https://centralindia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Восточная Япония | Да | Да | https://japaneast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Западная Япония | нет | Да | https://japanwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Западная Индия Jio | нет | Да | https://jioindiawest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Республика Корея, центральный регион | Да | Да | https://koreacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Центрально-северная часть США | нет | Да | https://northcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Северная Европа | Да | Да | https://northeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Восточная Норвегия; | нет | Да | https://norwayeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Северная часть ЮАР | нет | Да | https://southafricanorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Центрально-южная часть США | Да | Да | https://southcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Юго-Восточная Азия | Да | Да | https://southeastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Северная Швейцария | нет | Да | https://switzerlandnorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Западная Швейцария | нет | Да | https://switzerlandwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Северная часть ОАЭ; | нет | Да | https://uaenorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
южная часть Соединенного Королевства | Да | Да | https://uksouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
центрально-западная часть США | нет | Да | https://westcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Западная Европа | Да | Да | https://westeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
западная часть США | Да | Да | https://westus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
западная часть США 2 | Да | Да | https://westus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Западная часть США — 3 | нет | Да | https://westus3.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Примечание.
Предыдущие регионы доступны для размещения стандартной голосовой модели и синтеза в режиме реального времени. Обучение пользовательской голосовой связи доступно только в некоторых регионах. Но вы можете легко скопировать пользовательскую голосовую модель из этих регионов в другие регионы в предыдущем списке.
API длинного звука
API длинных аудиоматериалов доступен в нескольких регионах с уникальными конечными точками.
Область/регион | Конечная точка |
---|---|
Восточная Австралия | https://australiaeast.customvoice.api.speech.microsoft.com |
Восточная часть США | https://eastus.customvoice.api.speech.microsoft.com |
Центральная Индия | https://centralindia.customvoice.api.speech.microsoft.com |
Центрально-южная часть США | https://southcentralus.customvoice.api.speech.microsoft.com |
Юго-Восточная Азия | https://southeastasia.customvoice.api.speech.microsoft.com |
южная часть Соединенного Королевства | https://uksouth.customvoice.api.speech.microsoft.com |
Западная Европа | https://westeurope.customvoice.api.speech.microsoft.com |
Заголовки запросов
В этой таблице перечислены обязательные и необязательные заголовки для текстовых запросов речи:
Верхний колонтитул | Описание | Обязательно или необязательно |
---|---|---|
Authorization |
Маркеру авторизации предшествует слово Bearer . Дополнительные сведения см. в разделе Authenticate to the Speech API (Аутентификация в API речи). |
Обязательное поле |
Content-Type |
Указывает тип контента для предоставленного текста. Допустимое значение: application/ssml+xml . |
Обязательное поле |
X-Microsoft-OutputFormat |
Указывает формат аудиосигнала. Полный список допустимых значений см. в разделе Аудиосигналы. | Обязательное поле |
User-Agent |
Имя приложения. Указанное значение должно содержать менее 255 символов. | Обязательное поле |
Текст запроса
Если вы используете пользовательский голос, текст запроса можно отправить как обычный текст (ASCII или UTF-8). В противном случае текст каждого запроса POST
отправляется как SSML. SSML позволяет выбрать голос и язык синтезируемой речи, возвращаемой функцией преобразования текста в речь. Полный список поддерживаемых голосов см. в разделе Поддержка языков и голосов в службе "Речь".
Образец запроса
В этом HTTP-запросе используется SSML для указания голоса и языка. Если длина текста слишком велика и длительность полученной аудиодорожки превышает 10 минут, она усекается до 10 минут. Иными словами, длина аудиодорожки не может превышать 10 минут.
POST /cognitiveservices/v1 HTTP/1.1
X-Microsoft-OutputFormat: riff-24khz-16bit-mono-pcm
Content-Type: application/ssml+xml
Host: westus.tts.speech.microsoft.com
Content-Length: <Length>
Authorization: Bearer [Base64 access_token]
User-Agent: <Your application name>
<speak version='1.0' xml:lang='en-US'><voice xml:lang='en-US' xml:gender='Male'
name='en-US-ChristopherNeural'>
I'm excited to try text to speech!
</voice></speak>
* Для Content-Length следует использовать собственную длину содержимого. В большинстве случаев это значение вычисляется автоматически.
Коды состояния HTTP
Код состояния HTTP для каждого ответа указывает на успешное выполнение или возникновение распространенных ошибок.
Код состояния HTTP | Описание | Возможная причина |
---|---|---|
200 | ХОРОШО | Запрос выполнен успешно. Текст ответа представляет собой аудиофайл. |
400 | Недопустимый запрос | Обязательный параметр отсутствует, пустой или его значение равно нулю. Или переданное либо обязательному, либо необязательному параметру значение является недопустимым. Часто это связано с тем, что заголовок слишком длинный. |
401 | Не авторизовано | Запрос не авторизован. Убедитесь, что ключ ресурса службы "Речь" или токен действителен и в правильном регионе. |
415 | Неподдерживаемый тип мультимедиа | Возможно, указано неверное значение Content-Type . Для Content-Type необходимо задать application/ssml+xml . |
429 | Слишком много запросов | Превышена квота или скорость запросов, разрешенных для ресурса. |
502 | Недопустимый шлюз | Существует проблема с сетью или на стороне сервера. Это состояние может также указывать на недопустимые заголовки. |
503 (Сервис временно недоступен) | Служба недоступна | Существует проблема на стороне сервера по различным причинам. |
Если состояние HTTP — 200 OK
, текст ответа содержит звуковой файл в затребованном формате. Этот файл можно воспроизводить при передаче, сохранении в буфер или сохранении в файл.
Аудиосигналы
Поддерживаемые форматы потоковой передачи и непотоковых звуковых форматов отправляются в каждом запросе в качестве заголовка X-Microsoft-OutputFormat
. Каждый формат включает значение скорости и типа кодирования. Служба "Речь" поддерживает выходные аудиоданные с частотой дискретизации 48, 24, 16 и 8 кГц. Каждая стандартная модель голосовой связи доступна в 24 кбГц и высокой точности 48kГц.
amr-wb-16000hz
audio-16khz-16bit-32kbps-mono-opus
audio-16khz-32kbitrate-mono-mp3
audio-16khz-64kbitrate-mono-mp3
audio-16khz-128kbitrate-mono-mp3
audio-24khz-16bit-24kbps-mono-opus
audio-24khz-16bit-48kbps-mono-opus
audio-24khz-48kbitrate-mono-mp3
audio-24khz-96kbitrate-mono-mp3
audio-24khz-160kbitrate-mono-mp3
audio-48khz-96kbitrate-mono-mp3
audio-48khz-192kbitrate-mono-mp3
g722-16khz-64kbps
ogg-16khz-16bit-mono-opus
ogg-24khz-16bit-mono-opus
ogg-48khz-16bit-mono-opus
raw-8khz-8bit-mono-alaw
raw-8khz-8bit-mono-mulaw
raw-8khz-16bit-mono-pcm
raw-16khz-16bit-mono-pcm
raw-16khz-16bit-mono-truesilk
raw-22050hz-16bit-mono-pcm
raw-24khz-16bit-mono-pcm
raw-24khz-16bit-mono-truesilk
raw-44100hz-16bit-mono-pcm
raw-48khz-16bit-mono-pcm
webm-16khz-16bit-mono-opus
webm-24khz-16bit-24kbps-mono-opus
webm-24khz-16bit-mono-opus
Примечание.
Если выбрать формат выходных данных 48kHz, модель голосовой связи с высокой точностью с 48kГц будет вызываться соответствующим образом. Частоты выборки, отличные от 24 кГц и 48kГц, можно получить путем повышения или уменьшения скорости при синтезе, например, 44,1 кГц сокращается с 48 кГц.
Если у выбранного голоса и формата вывода будет разная скорость передачи звука, то при необходимости звук будет обработан повторно. Формат ogg-24khz-16bit-mono-opus
можно декодировать с помощью кодека Opus.
Проверка подлинности
Для каждого запроса требуется заголовок авторизации. В этой таблице показано, какие заголовки поддерживаются для каждого компонента.
Поддерживаемые заголовки авторизации | Преобразование речи в текст | Преобразование текста в речь |
---|---|---|
Ocp-Apim-Subscription-Key |
Да | Да |
Authorization: Bearer |
Да | Да |
При использовании заголовка Ocp-Apim-Subscription-Key
необходимо указать только ключ ресурса. Например:
'Ocp-Apim-Subscription-Key': 'YourSpeechResourceKey'
При использовании заголовка Authorization: Bearer
необходимо выполнить запрос к конечной точке issueToken
. В этом запросе вы обменяете ключом ресурса для маркера доступа, допустимого в течение 10 минут.
Другой вариант — использовать проверку подлинности Microsoft Entra, которая также использует Authorization: Bearer
заголовок, но с маркером, выданным с помощью идентификатора Microsoft Entra. См. статью "Использование проверки подлинности Microsoft Entra".
Как получить маркер доступа
Чтобы получить маркер доступа, необходимо запросить issueToken
конечную точку с помощью Ocp-Apim-Subscription-Key
ключа ресурса.
Конечная точка issueToken
имеет следующий формат:
https://<REGION_IDENTIFIER>.api.cognitive.microsoft.com/sts/v1.0/issueToken
Замените <REGION_IDENTIFIER>
идентификатором, который соответствует региону ресурса "Речь".
Используйте эти примеры, чтобы создать запрос на получение маркера доступа.
Пример HTTP
Это простой HTTP-запрос для получения маркера. Замените YourSpeechResourceKey
ключом ресурса для службы "Речь". Если ваш ресурс службы речи не находится в регионе "Запад США", замените заголовок Host
именем узла вашего региона.
POST /sts/v1.0/issueToken HTTP/1.1
Ocp-Apim-Subscription-Key: YourSpeechResourceKey
Host: eastus.api.cognitive.microsoft.com
Content-type: application/x-www-form-urlencoded
Content-Length: 0
Тело ответа содержит маркер доступа в формате JSON Web Token (JWT).
Пример для PowerShell
Это простой сценарий PowerShell для получения маркера доступа. Замените YourSpeechResourceKey
ключом ресурса для службы "Речь". Обязательно используйте правильную конечную точку для региона, соответствующего ресурсу службы "Речь". В этом примере используется конечная точка для западной части США.
$FetchTokenHeader = @{
'Content-type'='application/x-www-form-urlencoded';
'Content-Length'= '0';
'Ocp-Apim-Subscription-Key' = 'YourSpeechResourceKey'
}
$OAuthToken = Invoke-RestMethod -Method POST -Uri https://eastus.api.cognitive.microsoft.com/sts/v1.0/issueToken
-Headers $FetchTokenHeader
# show the token received
$OAuthToken
Пример cURL
cURL — это программа командной строки, доступная в Linux (и в подсистеме Windows для Linux). Эта команда cURL показывает, как получить маркер доступа. Замените YourSpeechResourceKey
ключом ресурса для службы "Речь". Обязательно используйте правильную конечную точку для региона, соответствующего ресурсу службы "Речь". В этом примере используется конечная точка для западной части США.
curl -v -X POST \
"https://eastus.api.cognitive.microsoft.com/sts/v1.0/issueToken" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Content-Length: 0" \
-H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey"
Пример на языке C#
Этот класс C# показывает, как получить маркер доступа. Передайте ключ ресурса для службы "Речь" при создании экземпляра класса. Если ресурс "Речь" не используется в регионе "Западная часть США", измените значение FetchTokenUri
, соответствующее региону для ресурса "Речь".
public class Authentication
{
public static readonly string FetchTokenUri =
"https://eastus.api.cognitive.microsoft.com/sts/v1.0/issueToken";
private string subscriptionKey;
private string token;
public Authentication(string subscriptionKey)
{
this.subscriptionKey = subscriptionKey;
this.token = FetchTokenAsync(FetchTokenUri, subscriptionKey).Result;
}
public string GetAccessToken()
{
return this.token;
}
private async Task<string> FetchTokenAsync(string fetchUri, string subscriptionKey)
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
UriBuilder uriBuilder = new UriBuilder(fetchUri);
var result = await client.PostAsync(uriBuilder.Uri.AbsoluteUri, null);
Console.WriteLine("Token Uri: {0}", uriBuilder.Uri.AbsoluteUri);
return await result.Content.ReadAsStringAsync();
}
}
}
Пример для Python
# Request module must be installed.
# Run pip install requests if necessary.
import requests
subscription_key = 'REPLACE_WITH_YOUR_KEY'
def get_token(subscription_key):
fetch_token_url = 'https://eastus.api.cognitive.microsoft.com/sts/v1.0/issueToken'
headers = {
'Ocp-Apim-Subscription-Key': subscription_key
}
response = requests.post(fetch_token_url, headers=headers)
access_token = str(response.text)
print(access_token)
Как использовать маркер доступа
Маркер доступа должен отправляться в службу в виде заголовка Authorization: Bearer <TOKEN>
. Каждый маркер доступа действителен в течение 10 минут. Вы можете получить новый маркер в любое время, но, чтобы уменьшить сетевой трафик и задержку, мы рекомендуем использовать один маркер в течение девяти минут.
Ниже приведен пример HTTP-запроса к API преобразования речи в текст REST API для короткого звука:
POST /cognitiveservices/v1 HTTP/1.1
Authorization: Bearer YOUR_ACCESS_TOKEN
Host: westus.stt.speech.microsoft.com
Content-type: application/ssml+xml
Content-Length: 199
Connection: Keep-Alive
// Message body here...
Использование проверки подлинности Microsoft Entra
Чтобы использовать проверку подлинности Microsoft Entra с помощью REST API преобразования речи в текст для короткого звука, необходимо создать маркер доступа. Действия по получению маркера доступа, состоящего из идентификатора ресурса и маркера доступа Microsoft Entra, совпадают с тем, что и при использовании пакета SDK службы "Речь". Выполните действия, описанные здесь , используйте проверку подлинности Microsoft Entra
- Создание ресурса ИИ Foundry для распознавания речи
- Настройка ресурса службы "Речь" для проверки подлинности Microsoft Entra
- Получение маркера доступа Microsoft Entra
- Получение идентификатора ресурса службы "Речь"
После получения идентификатора ресурса и маркера доступа Microsoft Entra фактический маркер доступа можно создать в следующем формате:
aad#YOUR_RESOURCE_ID#YOUR_MICROSOFT_ENTRA_ACCESS_TOKEN
Необходимо включить префикс "aad#" и разделитель "#" (хэш) между идентификатором ресурса и маркером доступа.
Ниже приведен пример HTTP-запроса к API преобразования речи в текст REST API для короткого звука:
POST /cognitiveservices/v1 HTTP/1.1
Authorization: Bearer YOUR_ACCESS_TOKEN
Host: westus.stt.speech.microsoft.com
Content-type: application/ssml+xml
Content-Length: 199
Connection: Keep-Alive
// Message body here...
Дополнительные сведения о маркерах доступа Microsoft Entra, включая время существования маркеров, посетите маркеры доступа в платформа удостоверений Майкрософт.