Использование службы "Речь" через частную конечную точку

Приватный канал Azure позволяет подключаться к службам в Azure с помощью частной конечной точки. Частная конечная точка — это частный IP-адрес, доступный только в определенной виртуальной сети и подсети.

В этой статье объясняется, как настроить и использовать Приватный канал и частные конечные точки со службой "Речь". В этой статье также описано, как потом удалить частные конечные точки, но при этом продолжать использовать службы "Речь".

Примечание.

Прежде чем продолжить, ознакомьтесь с тем, как использовать виртуальные сети со службами ИИ Azure.

Чтобы настроить ресурс службы "Речь" для сценариев с частной конечной точкой, необходимо выполнить следующие задачи:

  1. Создание имени личного домена
  2. Включение частных конечных точек
  3. Настройка существующих приложений и решений

Частные конечные точки и конечные точки службы виртуальной сети

Azure предоставляет частные конечные точки и конечные точки службы виртуальной сети для трафика, который туннелируется через частную магистральную сеть Azure. Назначение и базовые технологии, используемые для этих типов конечных точек, похожи. Однако между ними есть и различия. Перед проектированием сети рекомендуется ознакомиться с преимуществами и недостатками обоих вариантов.

При выборе технологии необходимо учитывать следующие моменты.

  • Обе технологии гарантируют, что трафик между виртуальной сетью и ресурсом службы "Речь" не передается через общедоступный Интернет.
  • Частная конечная точка предоставляет выделенный частный IP-адрес для вашего ресурса службы "Речь". Этот IP-адрес доступен только внутри конкретной виртуальной сети и подсети. Вы полностью контролируете доступ к нему в своей сетевой инфраструктуре.
  • Конечные точки службы виртуальной сети не предоставляют выделенный частный IP-адрес для ресурса службы "Речь". Вместо этого они инкапсулируют все пакеты, отправленные в ресурс службы "Речь", и доставляют их непосредственно через магистральную сеть Azure.
  • Обе технологии поддерживают локальное размещение. По умолчанию при использовании конечных точек службы виртуальной сети нельзя получить доступ к ресурсам служб Azure, защищенным в виртуальных сетях, из локальных сетей. Однако можно изменить это поведение.
  • Конечные точки службы виртуальной сети часто используются для ограничения доступа к ресурсу службы "Речь" в зависимости виртуальных сетей, из которых исходит трафик.
  • Для служб ИИ Azure, что позволяет конечной точке службы виртуальная сеть принудительно использовать трафик для всех ресурсов служб ИИ Azure для передачи через частную магистральную сеть. Для этого требуется явно настроить доступ к сети. (Дополнительные сведения см. в разделе Настройка виртуальных сетей и параметры сетевых ресурсов службы "Речь"). Частные конечные точки не предполагают такого ограничения и дают больше гибких возможностей для настройки сети. Вы можете получить доступ к одному ресурсу через частную магистраль, а к другому — через общедоступный Интернет, используя одну и ту же подсеть одной и той же виртуальной сети.
  • Использование частных конечных точек требует дополнительных затрат. Конечные точки служб для виртуальной сети не требуют дополнительных затрат.
  • Для частных конечных точек нужна дополнительная настройка DNS.
  • Один ресурс службы "Речь" может одновременно работать и с частными конечными точками, и с конечными точками службы виртуальной сети.

Перед тем как делать окончательный выбор для рабочей среды, рекомендуем опробовать оба варианта.

Дополнительные сведения см. в следующих ресурсах:

В этой статье описывается использование частных конечных точек со службами "Речь". Использование конечных точек службы для виртуальной сети рассматривается здесь.

Создание пользовательского доменного имени

Внимание

Ресурс "Речь" с личным доменным именем использует другой способ взаимодействия со службами "Речь". Вам может потребоваться настроить код приложения для обоих сценариев: с закрытой конечной точкой и без нее.

Выполните следующие действия, чтобы создать пользовательское имя поддомена для служб ИИ Azure для ресурса "Речь".

Внимание

Операция включения имени личного домена необратима. Единственный способ вернуться к региональному имени — создать новый ресурс "Речь".

Если у вашего ресурса "Речь" много связанных пользовательских моделей и проектов создано с помощью Speech Studio, настоятельно рекомендуется выполнить настройку с помощью тестового ресурса, прежде чем изменять ресурс, используемый в рабочей среде.

Чтобы создать имя личного домена на портале Azure, выполните следующие действия:

  1. Откройте портал Azure и войдите в свою учетную запись Azure.

  2. Выберите необходимый ресурс "Речь".

  3. В группе Управление ресурсами на левой панели выберите Сеть.

  4. На вкладке Брандмауэры и виртуальные сети выберите Создать пользовательское доменное имя. Справа появится новая панель с инструкциями по созданию уникального пользовательского поддомена для ресурса.

  5. На панели Создание пользовательского доменного имени введите пользовательское доменное имя. Полное имя вашего личного домена будет выглядеть так: https://{your custom name}.cognitiveservices.azure.com.

    Помните, что после создания пользовательского доменного имени его нельзя изменить.

    Указав пользовательское доменное имя, нажмите кнопку Сохранить.

  6. После завершения операции в группе Управление ресурсами выберите Ключи и конечная точка. Убедитесь, что имя новой конечной точки ресурса начинается так: https://{your custom name}.cognitiveservices.azure.com.

Включение частных конечных точек

Рекомендуется использовать частную зону DNS, подключенную к виртуальной сети, с необходимыми обновлениями для частных конечных точек. Частную зону DNS можно создать в процессе подготовки к работе. Если вы используете собственный DNS-сервер, вам также может потребоваться изменить конфигурацию DNS.

Прежде чем подготовить частные конечные точки для ресурса "Речь" в рабочей среде, выберите стратегию DNS. Также протестируйте изменения DNS, особенно если вы используете собственный DNS-сервер.

Для создания частных конечных точек ознакомьтесь с одной из следующих статей. В этих статьях используется веб-приложение в качестве примера ресурса, к которому будет предоставлен доступ через частные конечные точки.

Используйте эти параметры вместо параметров в выбранной статье:

Параметр Значение
Тип ресурса Microsoft.CognitiveServices/accounts
Ресурс <your-speech-resource-name>
Целевой подресурс учетная запись

DNS для частных конечных точек. Ознакомьтесь с общими принципами DNS для частных конечных точек в ресурсах служб искусственного интеллекта Azure. Затем убедитесь, что конфигурация DNS работает правильно, выполнив проверки, описанные в следующих разделах.

Разрешение DNS из виртуальной сети

Эта проверка является обязательной.

Выполните следующие действия, чтобы проверить пользовательскую запись DNS из виртуальной сети.

  1. Войдите на виртуальную машину, расположенную в виртуальной сети, к которой подключена частная конечная точка.

  2. Откройте командную строку Windows или оболочку Bash, выполните команду nslookup и убедитесь, что она успешно разрешает пользовательское доменное имя ресурса.

    C:\>nslookup my-private-link-speech.cognitiveservices.azure.com
    Server:  UnKnown
    Address:  168.63.129.16
    
    Non-authoritative answer:
    Name:    my-private-link-speech.privatelink.cognitiveservices.azure.com
    Address:  172.28.0.10
    Aliases:  my-private-link-speech.cognitiveservices.azure.com
    
  3. Убедитесь, что IP-адрес совпадает с IP-адресом частной конечной точки.

Разрешение DNS из других сетей

Выполните эту проверку, только если вы включили параметр Все сети или параметр доступа Выбранные сети и частные конечные точки в разделе Сеть своего ресурса.

Если вы планируете доступ к ресурсу только с помощью частной конечной точки, этот раздел можно пропустить.

  1. Войдите на компьютер, подключенный к сети, разрешенный для доступа к ресурсу.

  2. Откройте командную строку Windows или оболочку Bash, выполните команду nslookup и убедитесь, что она успешно разрешает пользовательское доменное имя ресурса.

    C:\>nslookup my-private-link-speech.cognitiveservices.azure.com
    Server:  UnKnown
    Address:  fe80::1
    
    Non-authoritative answer:
    Name:    vnetproxyv1-weu-prod.westeurope.cloudapp.azure.com
    Address:  13.69.67.71
    Aliases:  my-private-link-speech.cognitiveservices.azure.com
              my-private-link-speech.privatelink.cognitiveservices.azure.com
              westeurope.prod.vnet.cog.trafficmanager.net
    

Примечание.

Разрешенный IP-адрес указывает на конечную точку прокси-сервера виртуальной сети, которая отправляет сетевой трафик в частную конечную точку для ресурса "Речь". Поведение ресурса с пользовательским доменным именем, но без частных конечных точек будет другим. Дополнительные сведения см. в этом разделе.

Настройка приложения для использования ресурса "Речь" с частной конечной точкой

Ресурс "Речь" с личным доменом взаимодействует со службой "Речь" другим способом. Это справедливо для ресурса "Речь" на личном домене как с частными конечными точками, так и без них. Сведения в этом разделе относятся к обоим сценариям.

Следуйте инструкциям в этом разделе, чтобы настроить существующие приложения и решения на использование ресурса "Речь" с пользовательским доменным именем и включенной частной конечной точкой.

Ресурс "Речь" с именем личного домена и частной конечной точкой, включенным, использует другой способ взаимодействия со службой "Речь". В этом разделе объясняется, как использовать такой ресурс с ИНТЕРФЕЙСами REST API службы "Речь" и пакетом SDK службы "Речь".

Примечание.

Ресурс "Речь" без частных конечных точек, использующих имя личного домена, также имеет специальный способ взаимодействия со службой "Речь". Этот способ отличается от сценария, в котором ресурс "Речь" использует частную конечную точку. Это важно учитывать, так как вы можете удалить частные конечные точки позже. См. раздел Настройка приложения для использования ресурса "Речь" без частных конечных точек в этой статье.

Ресурс "Речь" с пользовательским доменным именем и частной конечной точкой: использование с REST API

Для этого раздела мы используем my-private-link-speech.cognitiveservices.azure.com в качестве примера DNS-имени ресурса службы "Речь" (личный домен).

Служба "Речь" содержит REST API для преобразования речи в текст и текст речи. Примите во внимание следующие сведения о сценарии, в котором частные конечные точки включены.

Речь в тексте содержит два REST API. Каждый API имеет свое назначение, использует разные конечные точки и требует особого подхода при использовании в сценарии с включенными частными конечными точками.

Интерфейсы REST API преобразования речи в текст:

Использование REST API преобразования речи в текст для короткого звука и REST API преобразования текста в речь в сценарии частной конечной точки совпадает. Способ совпадает с тем, который описан для варианта с использованием пакета SDK "Речь" далее в этой статье.

Для преобразования речи в текст REST API используется другой набор конечных точек, поэтому для сценария с поддержкой частной конечной точки требуется другой подход.

В следующих подразделах описываются оба варианта.

Преобразование речи в текстовый REST API

Как правило, ресурсы службы распознавания речи используют региональные конечные точки служб ИИ Azure для обмена данными с речью с текстовым REST API. Эти ресурсы имеют следующий формат имени:

{region}.api.cognitive.microsoft.com.

Пример URL-адреса запроса:

https://westeurope.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions

Примечание.

См. эту статью для Azure для государственных организаций и Microsoft Azure, управляемых конечными точками 21Vianet.

После включения личного домена для ресурса "Речь" (который необходим для частных конечных точек) этот ресурс будет использовать следующий шаблон DNS-имени для базовой конечной точки REST API:

{your custom name}.cognitiveservices.azure.com

Это означает, что в нашем примере имя конечной точки REST API:

my-private-link-speech.cognitiveservices.azure.com

А пример URL-адреса запроса необходимо преобразовать в следующий вид:

https://my-private-link-speech.cognitiveservices.azure.com/speechtotext/v3.1/transcriptions

Этот URL-адрес должен быть доступен из виртуальной сети с подключенной частной конечной точкой (при условии что разрешение DNS происходит правильно).

После включения пользовательского доменного имени для ресурса "Речь" обычно имя узла заменяется во всех URL-адресах запросов на новое имя узла личного домена. Все остальные части запроса (например, путь /speechtotext/v3.1/transcriptions в предыдущем примере) не меняются.

Совет

Некоторые клиенты разрабатывают приложения, использующие региональную часть DNS-имени региональной конечной точки (например, для отправки запроса в ресурс "Речь", развернутый в определенном регионе Azure).

Личный домен для ресурса "Речь" не содержит сведений о регионе, в котором развернут этот ресурс. Поэтому логика приложения, описанная выше, не будет работать, и ее необходимо изменить.

Rest API преобразования речи в текст для короткого аудио и текста в REST API речи

REST API преобразования речи в текст для короткого звука и REST API преобразования текста в речь используют два типа конечных точек:

  • Региональные конечные точки служб ИИ Azure для взаимодействия с REST API служб ИИ Azure для получения маркера авторизации
  • специальные конечные точки для других операций.

Примечание.

См. эту статью для Azure для государственных организаций и Azure, управляемых конечными точками 21Vianet.

Подробное описание специальных конечных точек и способ преобразования их URL-адресов для ресурса "Речь" с включенными частными конечными точками приведены в этом подразделе об использовании с пакетом SDK "Речь". Тот же принцип, описанный в пакете SDK, применяется для преобразования речи в текстовый REST API для короткого звука и REST API преобразования текста в речь.

Ознакомьтесь с материалами в подразделе, упомянутом в предыдущем абзаце, и изучите следующий пример. В примере описывается REST API преобразования текста в речь. Использование REST API преобразования речи в текст для короткого звука полностью эквивалентно.

Примечание.

При использовании REST API преобразования речи в текст для короткого звукового и текстового ИНТЕРФЕЙСА REST API в частных конечных точках используйте ключ ресурса, передаваемый Ocp-Apim-Subscription-Key через заголовок. (Дополнительные сведения см. в разделеREST API преобразования речи в текст для короткого аудио и текста в REST API речи)

Использование маркера авторизации и его передача в специальную конечную точку через заголовок Authorization будет работать, только если вы включили параметр доступа Все сети в разделе Сеть ресурса "Речь". В других случаях при попытке получить маркер авторизации возникнет ошибка Forbidden или BadRequest.

Пример использования REST API преобразования текста в речь

Мы используем Западную Европу в качестве примера региона Azure и my-private-link-speech.cognitiveservices.azure.com в качестве примера DNS-имени ресурса службы "Речь" (личный домен). Пользовательское доменное имя my-private-link-speech.cognitiveservices.azure.com в нашем примере принадлежит ресурсу "Речь", созданному в регионе Западная Европа.

Чтобы получить список голосов, поддерживаемых в регионе, выполните следующий запрос:

https://westeurope.tts.speech.microsoft.com/cognitiveservices/voices/list

Дополнительные сведения см. в документации по REST API преобразования текста в речь.

При использовании ресурса "Речь" с включенной частной конечной точкой необходимо изменить URL-адрес конечной точки, чтобы выполнить эту операцию. Тот же запрос выглядит следующим образом:

https://my-private-link-speech.cognitiveservices.azure.com/tts/cognitiveservices/voices/list

См. подробное пояснение в подразделе Создание URL-адреса конечной точки, посвященном пакету SDK для службы "Речь".

Ресурс "Речь" с пользовательским доменным именем и частной конечной точкой: использование с пакетом SDK для службы "Речь"

Чтобы использовать пакет SDK для службы "Речь" с пользовательским доменным именем и ресурсами "Речь", в которых включены частные конечные точки, необходимо проверить и, скорее всего, изменить код приложения.

Для этого раздела мы используем my-private-link-speech.cognitiveservices.azure.com в качестве примера DNS-имени ресурса службы "Речь" (личный домен).

Создание URL-адреса конечной точки

Обычно в сценариях ПАКЕТА SDK (и в речи в REST API для короткого звука и текста для речи REST API), ресурсы службы "Речь" используют выделенные региональные конечные точки для различных предложений служб. Формат DNS-имен для этих конечных точек следующий:

{region}.{speech service offering}.speech.microsoft.com

Пример DNS-имени:

westeurope.stt.speech.microsoft.com

Все возможные значения для региона (первый элемент DNS-имени) перечислены в статье Регионы, поддерживающие службу "Речь". (См. эту статью для Azure для государственных организаций и Azure, управляемых конечными точками 21Vianet.) В следующей таблице представлены возможные значения предложения службы "Речь" (второй элемент DNS-имени):

Значение DNS-имени Предложение службы "Речь"
commands Пользовательские команды
convai Транскрибирование собраний
s2s Перевод речи
stt Речь к тексту
tts Текст в речь
voice Пользовательский голос

Таким образом, предыдущий пример (westeurope.stt.speech.microsoft.com) означает конечную точку преобразования речи в текст в Западной Европе.

Конечные точки с поддержкой частных конечных точек взаимодействуют со службой "Речь" через специальный прокси-сервер. Поэтому необходимо изменить URL-адреса подключения конечных точек.

Стандартный URL-адрес конечной точки выглядит следующим образом:

{region}.{speech service offering}.speech.microsoft.com/{URL path}

URL-адрес частной конечной точки выглядит так:

{your custom name}.cognitiveservices.azure.com/{speech service offering}/{URL path}

Пример 1. Приложение взаимодействует с использованием следующего URL-адреса (распознавание речи на основе базовой модели для английского языка (США) в Западной Европе):

wss://westeurope.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US

Чтобы использовать его в сценарии с включенными частными конечными точками, когда пользовательское доменное имя ресурса "Речь" — my-private-link-speech.cognitiveservices.azure.com, необходимо изменить URL-адрес следующим образом:

wss://my-private-link-speech.cognitiveservices.azure.com/stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US

Обратите внимание на следующее.

  • Имя узла westeurope.stt.speech.microsoft.com заменяется на имя узла личного домена my-private-link-speech.cognitiveservices.azure.com.
  • Второй элемент исходного DNS-имени (stt) становится первым элементом URL-пути и предшествует исходному пути. Поэтому исходный URL-адрес /speech/recognition/conversation/cognitiveservices/v1?language=en-US превратится в /stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US.

Пример 2. Приложение использует следующий URL-адрес для синтезирования речи в Западной Европе:

wss://westeurope.tts.speech.microsoft.com/cognitiveservices/websocket/v1

Следующий эквивалентный URL-адрес использует частную конечную точку, где пользовательским доменным именем ресурса "Речь" является my-private-link-speech.cognitiveservices.azure.com:

wss://my-private-link-speech.cognitiveservices.azure.com/tts/cognitiveservices/websocket/v1

Применяется тот же принцип, что и в примере 1, но теперь ключевым элементом становится tts.

Изменение приложений

Чтобы изменить код, выполните следующие действия.

  1. Определите URL-адрес конечной точки приложения:

    • Включите ведение журнала для приложения и запустите его, чтобы регистрировать действия.
    • Найдите SPEECH-ConnectionUrl в файле журнала. В соответствующих строках value параметр содержит полный URL-адрес, используемый приложением для доступа к службе "Речь".

    Пример:

    (114917): 41ms SPX_DBG_TRACE_VERBOSE:  property_bag_impl.cpp:138 ISpxPropertyBagImpl::LogPropertyAndValue: this=0x0000028FE4809D78; name='SPEECH-ConnectionUrl'; value='wss://westeurope.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?traffictype=spx&language=en-US'
    

    Итак, вот URL-адрес, используемый приложением в этом примере:

    wss://westeurope.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US
    
  2. Создайте экземпляр SpeechConfig с помощью полного URL-адреса конечной точки:

    1. Измените определяемую конечную точку, как описано в разделе URL-адреса конечной точки конструктора.

    2. Измените метод создания экземпляра SpeechConfig. Скорее всего, приложение уже использует нечто похожее на:

      var config = SpeechConfig.FromSubscription(speechKey, azureRegion);
      

      Этот пример не работает для ресурса службы "Речь с поддержкой частной конечной точки" из-за изменений имени узла и URL-адреса, описанных в предыдущих разделах. Если вы пытаетесь запустить существующее приложение без каких-либо изменений с помощью ключа ресурса с поддержкой частной конечной точки, вы получите ошибку проверки подлинности (401).

      Чтобы оно заработало, измените способ создания экземпляра класса SpeechConfig и используйте инициализацию "из конечной точки"/"с конечной точкой". Предположим, что определены следующие две переменные:

      • speechKey содержит ключ ресурса "Речь" с включенной частной конечной точкой.
      • endPoint содержит полный измененный URL-адрес конечной точки (с использованием типа, соответствующего языку программирования). В нашем примере эта переменная должна содержать:
        wss://my-private-link-speech.cognitiveservices.azure.com/stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US
        

      Создайте экземпляр SpeechConfig:

      var config = SpeechConfig.FromEndpoint(endPoint, speechKey);
      
      auto config = SpeechConfig::FromEndpoint(endPoint, speechKey);
      
      SpeechConfig config = SpeechConfig.fromEndpoint(endPoint, speechKey);
      
      import azure.cognitiveservices.speech as speechsdk
      config = speechsdk.SpeechConfig(endpoint=endPoint, subscription=speechKey)
      
      SPXSpeechConfiguration *config = [[SPXSpeechConfiguration alloc] initWithEndpoint:endPoint subscription:speechKey];
      
      import * as sdk from "microsoft.cognitiveservices.speech.sdk";
      config: sdk.SpeechConfig = sdk.SpeechConfig.fromEndpoint(new URL(endPoint), speechKey);
      

Совет

Параметры запроса, указанные в URI конечной точки, не изменяются, даже если они заданы другими API. Например, если язык распознавания определен в URI как параметр запроса language=en-US и для него также задано значение ru-RU в соответствующем свойстве, используется параметр языка URI. Тогда действующим языком является en-US.

Параметры, заданные в URI конечной точки, всегда имеют приоритет. Другие API могут переопределять только те параметры, которые не указаны в URI конечной точки.

После внесения изменений приложение должно работать с ресурсами "Речь" с включенными частными конечными точками. Мы работаем над тем, чтобы сделать сценарии частных конечных точек более удобными.

Использование Speech Studio

Speech Studio — это веб-портал с инструментами для создания и интеграции службы распознавания речи ИИ Azure в приложении. При работе в проектах в Speech Studio сетевые подключения и вызовы API к соответствующему ресурсу службы "Речь" выполняются от вашего имени. Работа с частными конечными точками, конечными точками службы виртуальной сети и другими параметрами безопасности сети может ограничить доступность функций Speech Studio. Обычно вы используете Speech Studio при работе с функциями, такими как настраиваемая речь, пользовательское нейронное голосовое извуковое содержимое.

Доступ к веб-порталу Speech Studio из виртуальной сети

Чтобы работать со Speech Studio с виртуальной машины в виртуальной сети Azure, вы должны разрешить исходящие подключения к нужному набору тегов службы для этой виртуальной сети. Дополнительные сведения см. здесь.

Доступ к конечной точке ресурса службы "Речь" и доступ к веб-порталу Speech Studio — не одно и то же. Доступ к веб-порталу Speech Studio через частные конечные точки или конечные точки службы виртуальной сети не поддерживается.

Работа с проектами Speech Studio

В этом разделе описывается работа с различными видами проектов Speech Studio для различных параметров сетевой безопасности ресурса службы "Речь". Предполагается, что веб-браузер подключен к Speech Studio. Параметры безопасности сети для ресурсов службы "Речь" задаются на портале Azure.

  1. Откройте портал Azure и войдите в свою учетную запись Azure.
  2. Выберите ресурс службы "Речь".
  3. В области слева в группе Управление ресурсами выберите Сеть>Брандмауэры и виртуальные сети.
  4. Выберите один из вариантов: Все сети, Выбранные сети и частные конечные точки или Отключенные.

Настраиваемая речь

В следующей таблице описаны специальные возможности проекта службы "Речь>" для сетевых брандмауэров и параметров безопасности виртуальных сетей.

Примечание.

Если вы разрешите только частные конечные точки с помощью вкладки Сеть>Подключения к частной конечной точке, вы не сможете использовать Speech Studio с ресурсом службы "Речь". Вы по-прежнему можете использовать ресурс службы "Речь" за пределами Speech Studio.

Параметры безопасности сети для ресурсов службы "Речь" Специальные возможности проекта Speech Studio
Все сети Без ограничений
Выбранные сети и частные конечные точки Доступно с разрешенных общедоступных IP-адресов
Выключено Недоступно

Если щелкнуть Выбранные сети и частные конечные точки, появится вкладка с параметрами настройки доступа к виртуальным сетям и брандмауэру. В разделе Брандмауэр необходимо разрешить хотя бы один общедоступный IP-адрес и использовать его для подключения браузера к Speech Studio.

Если вы разрешаете доступ только через виртуальную сеть, значит, вы не разрешаете доступ к ресурсу службы "Речь" с помощью Speech Studio. Вы по-прежнему можете использовать ресурс службы "Речь" за пределами Speech Studio.

Чтобы использовать пользовательское распознавание речи, не смягчая ограничения доступа к сети, установленные для рабочего ресурса службы "Речь", рассмотрите один из этих обходных путей.

  • Создайте еще один ресурс службы "Речь" для разработки, который можно использовать в общедоступной сети. Подготовьте пользовательскую модель в Speech Studio в ресурсе разработки, а затем скопируйте ее в рабочий ресурс. См. Models_CopyTo запрос REST с речью на текстовый REST API.
  • Вы можете не использовать Speech Studio для пользовательского распознавания речи. Используйте REST API преобразования речи в текст для всех пользовательских операций речи.

Создание пользовательского голосового и звукового содержимого

Вы можете использовать пользовательские проекты voice и audio Content Creation Speech Studio, только если параметр безопасности сети "Речь" — " Все сети".

Настройка приложения для использования ресурса "Речь" без частных конечных точек

В этой статье мы отметили несколько раз, что включение личного домена для ресурса "Речь" является необратимым. Такой ресурс использует другой способ взаимодействия со службой "Речь" по сравнению с теми, которые используют имена региональных конечных точек.

В этом разделе объясняется, как использовать ресурс "Речь" с именем личного домена, но без частных конечных точек с интерфейсами REST API службы "Речь" и пакетом SDK службы "Речь". Это может быть ресурс, который раньше использовался в сценарии с частными конечными точками, а затем эти точки были удалены.

DNS configuration (Настройка DNS)

Вспомните, как DNS-имя личного домена ресурса "Речь" с включенными частными конечными точками разрешается из общедоступных сетей. В этом случае IP-адрес разрешил точки в конечную точку прокси-сервера для виртуальной сети. Эта конечная точка используется для отправки сетевого трафика в ресурс служб Azure AI с поддержкой частной конечной точки.

Однако при удалении всех частных конечных точек ресурса (или непосредственно после включения пользовательского доменного имени) необходимо провести повторную подготовку записи CNAME для ресурса "Речь". Теперь он указывает НА IP-адрес соответствующей региональной конечной точки служб искусственного интеллекта Azure.

Поэтому выходные данные nslookup команды выглядят следующим образом:

C:\>nslookup my-private-link-speech.cognitiveservices.azure.com
Server:  UnKnown
Address:  fe80::1

Non-authoritative answer:
Name:    apimgmthskquihpkz6d90kmhvnabrx3ms3pdubscpdfk1tsx3a.cloudapp.net
Address:  13.93.122.1
Aliases:  my-private-link-speech.cognitiveservices.azure.com
          westeurope.api.cognitive.microsoft.com
          cognitiveweprod.trafficmanager.net
          cognitiveweprod.azure-api.net
          apimgmttmdjylckcx6clmh2isu2wr38uqzm63s8n4ub2y3e6xs.trafficmanager.net
          cognitiveweprod-westeurope-01.regional.azure-api.net

Сравните их с выходными данными в этом разделе.

Ресурс "Речь" с пользовательским доменным именем и без частных конечных точек: использование с REST API

Преобразование речи в текстовый REST API

Использование REST API преобразования речи в текст полностью эквивалентно использованию ресурсов службы "Речь" с поддержкой частной конечной точки.

Rest API преобразования речи в текст для короткого аудио и текста в REST API речи

В этом случае использование REST API преобразования речи в текст для короткого звука и использования REST API "Текст для речи" не имеет различий от общего дела, за исключением одного исключения. (См. следующее примечание.) Вы должны использовать оба API, как описано в документации REST API преобразования речи в текст rest API для короткого звука и текста в речь.

Примечание.

Если вы используете REST API преобразования речи в текст для короткого звукового и текстового ИНТЕРФЕЙСА REST API в пользовательском домене, используйте ключ ресурса службы "Речь", передаваемый Ocp-Apim-Subscription-Key через заголовок. (Дополнительные сведения см. в разделеREST API преобразования речи в текст для короткого аудио и текста в REST API речи)

Использование маркера авторизации и его передача в специальную конечную точку через заголовок Authorization будет работать, только если вы включили параметр доступа Все сети в разделе Сеть ресурса "Речь". В других случаях при попытке получить маркер авторизации возникнет ошибка Forbidden или BadRequest.

Ресурс "Речь" с пользовательским доменным именем и без частных конечных точек: использование с пакетом SDK службы "Речь"

Использование пакета SDK службы "Речь" с ресурсами "Речь", в которых включен личный домен, без частных конечных точек соответствует общему случаю, описанному в документации по пакету SDK службы "Речь".

Если вы изменили код для использования с ресурсом "Речь" с включенными частными конечными точками, учитывайте следующее.

В разделе о ресурсах "Речь" с включенными частными конечными точками мы объяснили, как определить URL-адрес конечной точки, изменить его и заставить его работать с помощью инициализации экземпляра класса SpeechConfig "из конечной точки" или "с конечной точкой".

Однако при попытке запустить то же приложение после удаления всех частных конечных точек (что позволяет выполнить повторную подготовку соответствующей записи DNS) возникает внутренняя ошибка службы (404). Причина заключается в том, что запись DNS теперь указывает на конечную точку региональных служб ИИ Azure вместо прокси-сервера виртуальной сети, а url-адреса, как /stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US и не найдены.

Необходимо выполнить откат приложения к стандартному созданию экземпляра SpeechConfig в стиле следующего кода:

var config = SpeechConfig.FromSubscription(speechKey, azureRegion);

Одновременное использование частных конечных точек и конечных точек службы виртуальной сети

Частные конечные точки и конечные точки службы виртуальной сети можно одновременно использовать для доступа к одному и тому же ресурсу службы "Речь". Однако для этого необходимо выбрать вариант Выбранные сети и частные конечные точки в параметрах сети для ресурса службы "Речь" на портале Azure. Другие варианты для этого сценария не поддерживаются.

Цены

Дополнительные сведения о ценах см. на странице цен на службу "Приватный канал" Azure.

Подробнее