Utiliser le service Speech via un point de terminaison privé

Azure Private Link vous permet de vous connecter aux services dans Azure en utilisant un point de terminaison privé. Un point de terminaison privé est une adresse IP privée qui est accessible uniquement au sein d’un réseau virtuel et d’un sous-réseau spécifiques.

Cet article explique comment configurer et utiliser Private Link et les points de terminaison privés avec le service Speech. Cet article décrit ensuite comment supprimer des points de terminaison privés ultérieurement, tout en continuant à utiliser la ressource Speech.

Remarque

Avant de continuer, consultez l’article qui explique comment utiliser des réseaux virtuels avec Azure AI Services.

L’activation d’une ressource Speech pour les scénarios de point de terminaison privé exige d’effectuer les tâches suivantes :

  1. Créer un nom de domaine personnalisé
  2. Activer des points de terminaison privés
  3. Ajuster les solutions et applications existantes

Points de terminaison privés et points de terminaison de service du Réseau virtuel

Azure fournit des points de terminaison privés et des points de terminaison de service de Réseau virtuel pour le trafic qui transite par le réseau principal Azure privé. L’objectif et les technologies sous-jacentes de ces types de points de terminaison sont similaires. Toutefois, il existe des différences entre les deux technologies. Nous vous recommandons d’en savoir plus sur les avantages et les inconvénients des deux avant de concevoir votre réseau.

Voici quelques points à prendre en compte lorsque vous décidez de la technologie à utiliser :

  • Les deux technologies garantissent que le trafic entre le réseau virtuel et la ressource Speech n’est pas transitant par l’Internet public.
  • Un point de terminaison privé fournit une adresse IP privée dédiée pour votre ressource Speech. Cette adresse IP est accessible uniquement au sein d’un réseau virtuel et d’un sous-réseau spécifiques. Vous avez un contrôle total de l’accès à cette adresse IP au sein de votre infrastructure réseau.
  • Les points de terminaison de service de réseau virtuel ne fournissent pas d’adresse IP privée dédiée pour la ressource Speech. Au lieu de cela, ils encapsulent tous les paquets envoyés à la ressource Speech et les fournissent directement sur le réseau principal Azure.
  • Les deux technologies prennent en charge des scénarios locaux. Par défaut, lorsqu’ils utilisent des points de terminaison de service de réseau virtuel, les ressources de service Azure sécurisées pour les réseaux virtuels ne sont pas accessibles à partir des réseaux locaux. Mais vous pouvez modifier ce comportement.
  • Les points de terminaison de service de réseau virtuel sont souvent utilisés pour limiter l’accès à une ressource Speech en fonction des réseaux virtuels dont provient le trafic.
  • Dans le cas d’Azure AI services, l’activation du point de terminaison de service de réseau virtuel force le trafic des ressources d’Azure AI services à transiter par le réseau principal privé. Cela nécessite une configuration d’accès réseau explicite. (Pour plus d’informations, consultez configurer les réseaux virtuels et les paramètres de mise en réseau des ressources Speech.) Les points de terminaison privés n’ont pas cette limitation et offrent plus de flexibilité pour la configuration de votre réseau. Vous pouvez accéder à une ressource via le réseau principal privé et une autre via l’Internet public en utilisant le même sous-réseau du même réseau virtuel.
  • Les points de terminaison privés entraînent des coûts supplémentaires. Les points de terminaison de service du Réseau virtuel sont gratuits.
  • Les points de terminaison privés nécessitent une configuration DNS supplémentaire.
  • Une ressource Speech peut fonctionner simultanément avec des points de terminaison privés et des points de terminaison de service du Réseau virtuel.

Nous vous recommandons d’essayer les deux types de points de terminaison avant de décider de votre conception de production.

Pour plus d’informations, consultez ces ressources :

Cet article décrit l’utilisation des points de terminaison privés avec le service Speech. L’utilisation des points de terminaison de service de réseau virtuel est décrite ici.

Créer un nom de domaine personnalisé

Attention

Une ressource Speech avec un nom de domaine personnalisé activé utilise un autre moyen d’interagir avec le service Speech. Vous devrez peut-être adapter votre code d’application à ces deux scénarios : avec point de terminaison et sans point de terminaison privé.

Effectuez ces étapes afin de créer un nom de sous-domaine personnalisé pour Azure AI Services pour votre ressource Speech.

Attention

Lorsque vous activez un nom de domaine personnalisé, l’opération n’est pas réversible. La seule façon de revenir au nom régional consiste à créer une ressource Speech.

Si votre ressource Speech comporte un grand nombre de modèles et de projets personnalisés associés créés avec Speech Studio, nous vous recommandons vivement d’essayer la configuration avec une ressource test avant de modifier la ressource utilisée en production.

Pour créer un nom de domaine personnalisé à l’aide du portail Azure, effectuez les étapes suivantes :

  1. Accédez au portail Azure et connectez-vous à votre compte Azure.

  2. Sélectionnez la ressource Speech requise.

  3. Dans le groupe Gestion des ressources dans le volet gauche, sélectionnez Réseau.

  4. Sous l’onglet Pare-feux et réseaux virtuels, sélectionnez Générer un nom de domaine personnalisé. Cela a pour effet d’ouvrir un nouveau panneau contenant des instructions pour créer un sous-domaine personnalisé unique pour votre ressource.

  5. Dans le panneau Générer un nom de domaine personnalisé, entrez un nom de domaine personnalisé. Votre domaine personnalisé complet ressemble à ce qui suit : https://{your custom name}.cognitiveservices.azure.com.

    N’oubliez pas : après avoir créé un nom de domaine personnalisé, vous ne pouvez plus le modifier.

    Une fois que vous avez entré votre nom de domaine personnalisé, sélectionnez Enregistrer.

  6. Quand l’opération est terminée, dans le groupe Gestion des ressources, sélectionnez Clés et point de terminaison. Confirmez que le nouveau nom de point de terminaison de votre ressource commence ainsi : https://{your custom name}.cognitiveservices.azure.com.

Activer des points de terminaison privés

Nous vous recommandons d’utiliser la zone DNS privée attachée au réseau virtuel avec les mises à jour nécessaires pour les points de terminaison privés. Vous pouvez créer une zone DNS privée par défaut pendant le processus de provisionnement. Si vous utilisez votre propre serveur DNS, vous devrez peut-être également modifier votre configuration DNS.

Choisissez une stratégie DNS avant de provisionner des points de terminaison privés pour une ressource Speech en production. Testez également vos modifications DNS, en particulier si vous utilisez votre propre serveur DNS.

Consultez l’un des articles suivants pour créer des points de terminaison privés. Ces articles utilisent une application web en guise d’exemple de ressource à mettre à disposition avec des points de terminaison privés.

Utilisez ces paramètres à la place des paramètres de l’article de votre choix :

Paramètre Valeur
Type de ressource Microsoft.CognitiveServices/accounts
Resource <nom_de_votre_ressource_speech>
Sous-ressource cible account

DNS pour points de terminaison privés : familiarisez-vous avec les principes généraux en lien avec DNS pour points de terminaison privés dans des ressources Azure AI Services. Vérifiez ensuite que votre configuration DNS fonctionne correctement en effectuant les vérifications décrites dans les sections suivantes.

Résolution DNS à partir du réseau virtuel

Cette vérification est obligatoire.

Effectuez ces étapes pour tester l’entrée DNS personnalisée à partir de votre réseau virtuel :

  1. Connectez-vous à une machine virtuelle située dans le réseau virtuel auquel vous avez attaché votre point de terminaison privé.

  2. Ouvrez une invite de commandes Windows ou un shell Bash, exécutez la commande nslookup et vérifiez qu’elle résout correctement le nom de domaine personnalisé de votre ressource.

    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. Confirmez que l’adresse IP correspond à l’adresse IP de votre point de terminaison privé.

Résolution DNS à partir d’autres réseaux

Effectuez cette vérification uniquement si vous avez activé l’option Tous les réseaux ou l’option d’accès Points de terminaison privés et réseaux sélectionnés dans la section Réseau de votre ressource.

Si vous envisagez d’accéder à la ressource en utilisant uniquement un point de terminaison privé, vous pouvez ignorer cette section.

  1. Connectez-vous à un ordinateur connecté à un réseau autorisé à accéder à la ressource.

  2. Ouvrez une invite de commandes Windows ou un shell Bash, exécutez la commande nslookup et vérifiez qu’elle résout correctement le nom de domaine personnalisé de votre ressource.

    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
    

Notes

L’adresse IP résolue pointe vers un point de terminaison proxy de réseau virtuel qui est utilisé pour distribuer le trafic réseau au point de terminaison privé pour la ressource Speech. Le comportement est différent pour une ressource avec un nom de domaine personnalisé activé, mais sans point de terminaison privé. Consultez cette section pour plus d’informations.

Ajuster une application pour qu’elle utilise une ressource Speech avec un point de terminaison privé

Une ressource Speech avec un domaine personnalisé interagit différemment avec le service Speech. Cela est vrai pour une ressource Speech avec un domaine personnalisé activé avec et sans point de terminaison privé. Les informations contenues dans cette section s’appliquent aux deux scénarios.

Suivez les instructions de cette section afin d’ajuster les applications et solutions existantes pour qu’elles utilisent une ressource Speech avec un nom de domaine personnalisé et un point de terminaison privé activé.

Une ressource Speech qui a un nom de domaine personnalisé et un point de terminaison privé activé utilise un autre moyen pour interagir avec le service Speech. Cette section explique comment utiliser une telle ressource avec les API REST du service Speech et le SDK Speech.

Notes

Une ressource Speech sans points de terminaison privés qui utilise un nom de domaine personnalisé a également une façon spéciale d’interagir avec le service Speech. Cette méthode diffère du scénario d’une ressource Speech qui utilise un point de terminaison privé. Ce point est important, car vous pourriez décider ultérieurement de supprimer des points de terminaison privés. Consultez Ajuster une application pour qu’elle utilise une ressource Speech sans points de terminaison privés plus loin dans cet article.

Ressource Speech avec un nom de domaine personnalisé et un point de terminaison privé : Utilisation avec les API REST

Dans cette section, nous utilisons my-private-link-speech.cognitiveservices.azure.com comme exemple de nom DNS de ressource Speech (domaine personnalisé).

Le service Speech fournit des API REST pour la reconnaissance vocale et la synthèse vocale. Pour le scénario avec des points de terminaison privés activés, prenez en compte les informations suivantes.

La reconnaissance vocale a deux API REST. Chaque API sert un objectif différent, utilise des points de terminaison différents et nécessite une approche différente quand vous l’utilisez dans un scénario avec des points de terminaison privés activés.

Les API REST de reconnaissance vocale sont les suivantes :

L’utilisation de l’API REST de reconnaissance vocale pour audio court et de l’API REST de synthèse vocale dans le scénario avec des points de terminaison privés est identique. Elle est équivalente au cas d’usage du SDK Speech décrit plus loin dans cet article.

L’API REST de reconnaissance vocale utilise un autre ensemble de points de terminaison ; elle nécessite donc une approche différente pour le scénario avec des points de terminaison privés activés.

Les sous-sections suivantes décrivent les deux cas.

API REST de reconnaissance vocale

En général, les ressources Speech utilisent des points de terminaison régionaux Azure AI Services pour communiquer avec l’API REST de reconnaissance vocale. Ces ressources ont le format de nommage suivant :

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

Voici un exemple d’URL de demande :

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

Remarque

Consultez cet article pour Azure Government et Microsoft Azure gérés par des points de terminaison 21Vianet.

Une fois que vous avez activé un domaine personnalisé pour une ressource Speech (ce qui est nécessaire pour les points de terminaison privés), cette ressource utilise le modèle de nom DNS suivant pour le point de terminaison d’API REST de base :

{your custom name}.cognitiveservices.azure.com

Cela signifie que, dans notre exemple, le nom du point de terminaison d’API REST est :

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

Et l’exemple d’URL de requête doit être converti en :

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

Cette URL doit être accessible à partir du réseau virtuel avec le point de terminaison privé attaché (et la résolution DNS correcte).

Une fois que vous avez activé un nom de domaine personnalisé pour une ressource Speech, vous remplacez généralement le nom d’hôte de toutes les URL de requête par le nouveau nom d’hôte du domaine personnalisé. Toutes les autres parties de la requête (comme le chemin /speechtotext/v3.1/transcriptions dans l’exemple ci-dessus) restent les mêmes.

Conseil

Certains clients développent des applications qui utilisent la partie région du nom DNS du point de terminaison régional (par exemple, pour envoyer la requête à la ressource Speech déployée dans la région Azure en question).

Un domaine personnalisé pour une ressource Speech ne contient aucune information sur la région où la ressource est déployée. C’est pourquoi la logique d’application décrite précédemment ne fonctionne pas et doit être modifiée.

API REST de reconnaissance vocale pour audio court et API REST de synthèse vocale

L’API REST de reconnaissance vocale pour audio court et l’API REST de synthèse vocale utilisent deux types de points de terminaison :

Remarque

Consultez cet article pour Azure Government et Azure gérés par les points de terminaison 21Vianet.

Les points de terminaison spéciaux ainsi que la façon dont leur URL doit être transformée pour une ressource Speech avec des points de terminaison privés activés sont décrits en détail dans cette sous-section sur l’utilisation avec le SDK Speech. Le principe décrit pour le SDK s’applique également à l’API REST de reconnaissance vocale pour audio court et à l’API REST de synthèse vocale.

Consultez la sous-section mentionnée dans le paragraphe précédent et examinez l’exemple suivant L’exemple décrit l’API REST de synthèse vocale. L’utilisation de l’API REST de reconnaissance vocale pour audio court est strictement équivalente.

Notes

Quand vous utilisez l’API REST de reconnaissance vocale pour audio court et l’API REST de synthèse vocale dans des scénarios avec des points de terminaison privés, utilisez une clé de ressource transmise via l’en-tête Ocp-Apim-Subscription-Key. (Pour plus d’informations, consultez les sections API REST de reconnaissance vocale pour audio court et API REST de synthèse vocale.)

L’utilisation d’un jeton d’autorisation et sa transmission au point de terminaison spécial via l’en-tête Authorization fonctionnent uniquement si vous avez activé l’option d’accès Tous les réseaux dans la section Réseau de votre ressource Speech. Dans d’autres cas, vous obtiendrez une erreur Forbidden ou BadRequest lors de la tentative d’obtention d’un jeton d’autorisation.

Exemple d’utilisation de l’API REST de synthèse vocale

Nous utilisons la région Europe Ouest comme exemple de région Azure et my-private-link-speech.cognitiveservices.azure.com comme exemple de nom DNS de ressource Speech (domaine personnalisé). Le nom de domaine personnalisé my-private-link-speech.cognitiveservices.azure.com dans notre exemple appartient à la ressource Speech créée dans la région Europe Ouest.

Pour obtenir la liste des voix prises en charge dans la région, exécutez la requête suivante :

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

Pour plus d’informations, consultez la documentation de l’API REST de synthèse vocale.

Pour la ressource Speech avec des points de terminaison privés activés, l’URL des points de terminaison pour la même opération doit être modifiée. La même requête ressemble à ceci :

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

Consultez une explication détaillée dans la sous-section Construire l’URL du point de terminaison pour le SDK Speech.

Ressource Speech avec un nom de domaine personnalisé et un point de terminaison privé : Utilisation avec le SDK Speech

L’utilisation du SDK Speech pour des ressources Speech avec des noms de domaine personnalisés et des points de terminaison privés activés nécessite une revue et probablement des modifications de votre code d’application.

Dans cette section, nous utilisons my-private-link-speech.cognitiveservices.azure.com comme exemple de nom DNS de ressource Speech (domaine personnalisé).

Construire l’URL du point de terminaison

Généralement, dans les scénarios de SDK (et dans les scénarios d’API REST de reconnaissance vocale pour audio court et d’API REST de synthèse vocale), les ressources Speech utilisent les points de terminaison régionaux dédiés pour différentes offres de service. Le format de nom DNS pour ces points de terminaison est le suivant :

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

Voici un exemple de nom DNS :

westeurope.stt.speech.microsoft.com

Toutes les valeurs possibles pour la région (premier élément du nom DNS) sont listées dans Régions prises en charge pour le service Speech. (Consultez cet article pour les points de terminaison Azure Government et Azure exploité par 21Vianet.) Le tableau suivant présente les valeurs possibles pour l’offre du service Speech (deuxième élément du nom DNS) :

Valeur du nom DNS Offre Speech Services
commands Commandes personnalisées
convai Transcription de réunion
s2s Traduction vocale
stt Reconnaissance vocale
tts Synthèse vocale
voice Voix personnalisée

Ainsi, l’exemple précédent (westeurope.stt.speech.microsoft.com) correspond au point de terminaison de reconnaissance vocale dans la région Europe Ouest.

Les points de terminaison privés activés communiquent avec le service Speech par le biais d’un proxy spécial. Pour cette raison, vous devez modifier les URL de connexion des points de terminaison.

Une URL de point de terminaison « standard » ressemble à ceci :

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

Une URL de point de terminaison privé ressemble à ceci :

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

Exemple 1. Une application communique par le biais de l’URL suivante (reconnaissance vocale avec le modèle de base pour l’anglais des États-Unis dans la région Europe Ouest) :

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

Pour l’utiliser dans le scénario avec des points de terminaison privés activés quand le nom de domaine personnalisé de la ressource Speech est my-private-link-speech.cognitiveservices.azure.com, vous devez modifier cette URL comme suit :

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

Notez les informations suivantes :

  • Le nom d’hôte westeurope.stt.speech.microsoft.com est remplacé par le nom d’hôte du domaine personnalisé my-private-link-speech.cognitiveservices.azure.com.
  • Le deuxième élément du nom DNS d’origine (stt) devient le premier élément du chemin de l’URL et précède le chemin d’origine, de sorte que l’URL d’origine /speech/recognition/conversation/cognitiveservices/v1?language=en-US devient /stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US.

Exemple 2. L’application utilise l’URL suivante pour synthétiser la parole dans la région Europe Ouest :

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

L’URL équivalente suivante utilise un point de terminaison privé, où le nom de domaine personnalisé de la ressource Speech est my-private-link-speech.cognitiveservices.azure.com :

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

Le même principe que dans l’Exemple 1 est appliqué mais, cette fois, l’élément clé est tts.

Modification d’applications

Pour modifier votre code, procédez comme suit :

  1. Déterminez l’URL du point de terminaison de l’application :

    • Activez la journalisation pour votre application, puis exécutez-la pour générer le journal d’activité.
    • Dans le fichier journal, recherchez SPEECH-ConnectionUrl. Dans les lignes correspondantes, le paramètre value contient l’URL complète utilisée par votre application pour atteindre le service Speech.

    Exemple :

    (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'
    

    Par conséquent, l’URL que l’application a utilisée dans cet exemple est la suivante  :

    wss://westeurope.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US
    
  2. Créez une instance de SpeechConfig en utilisant une URL de point de terminaison complète :

    1. Modifiez le point de terminaison que vous avez déterminé, comme cela est décrit dans la section Construire l’URL du point de terminaison, plus haut dans cet article.

    2. Modifiez la manière dont vous créez l’instance de SpeechConfig. Le plus souvent, votre application utilisera quelque chose ressemblant à ceci :

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

      Cet exemple ne fonctionne pas pour une ressource Speech avec un point de terminaison privé activé en raison des changements de nom d’hôte et d’URL que nous avons décrits dans les sections précédentes. Si vous essayez d’exécuter votre application existante sans faire aucune modification et en utilisant la clé d’une ressource avec un point de terminaison privé activé, vous obtenez une erreur d’authentification (401).

      Pour que cela fonctionne, modifiez la manière dont vous instanciez la classe SpeechConfig et utilisez l’initialisation « à partir d’un point de terminaison »/« avec un point de terminaison ». Supposons que les deux variables suivantes sont définies :

      • speechKey contient la clé de la ressource Speech avec un point de terminaison privé activé.
      • endPoint contient l’URL modifiée complète du point de terminaison (utilisant le type requis par le langage de programmation correspondant). Dans notre exemple, cette variable devrait contenir ceci :
        wss://my-private-link-speech.cognitiveservices.azure.com/stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US
        

      Créez une instance 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);
      

Conseil

Les paramètres de requête spécifiés dans l’URI de point de terminaison ne sont pas modifiés, même s’ils sont définis par d’autres API. Par exemple, si la langue de reconnaissance est définie dans l’URI en tant que paramètre de requête language=en-US et qu’elle est également définie sur ru-RU dans la propriété correspondante, le paramètre de langue dans l’URI est utilisé. La langue effective est alors en-US.

Les paramètres définis dans l’URI de point de terminaison sont toujours prioritaires. Les autres API peuvent remplacer uniquement les paramètres qui ne sont pas définis dans l’URI de point de terminaison.

Après cette modification, votre application fonctionnera correctement avec des ressources Speech avec des points de terminaison privés activés. Nous travaillons sur une prise en charge plus fluide des scénarios avec des points de terminaison privés.

Utilisation de Speech Studio

Speech Studio est un portail web comportant des outils qui vous permettent de générer et d’intégrer le service Azure AI Speech dans votre application. Lorsque vous travaillez dans des projets Speech Studio, les connexions réseau et les appels d’API sont effectués automatiquement sur la ressource Speech correspondante. Le recours à des points de terminaison privés, à des points de terminaison de service de réseau virtuel et à d’autres options de sécurité réseau peut limiter la disponibilité des fonctionnalités de Speech Studio. Vous utilisez normalement Speech Studio dans le cadre de l’utilisation de fonctionnalités comme la reconnaissance vocale personnalisée, la Voix neuronale personnalisée et la Création de contenu audio.

Communication avec le portail web Speech Studio à partir d’un réseau virtuel

Pour utiliser Speech Studio à partir d’une machine virtuelle qui se trouve au sein d’un réseau virtuel Azure, vous devez autoriser les connexions sortantes vers l’ensemble requis d’étiquettes de service pour ce réseau virtuel. Consultez les informations détaillées ici.

L’accès au point de terminaison de la ressource Speech n’est pas équivalent à l’accès au portail web Speech Studio. L’accès au portail web Speech Studio n’est pris en charge ni par le biais de points de terminaison privés ni par le biais de points de terminaison de service de réseau virtuel.

Utilisation de projets Speech Studio

Cette section décrit l’utilisation des différents types de projets Speech Studio selon les options de sécurité réseau de la ressource Speech. La connexion du navigateur web à Speech Studio doit être établie. Les paramètres de sécurité réseau de la ressource Speech sont définis sur le Portail Azure.

  1. Accédez au portail Azure et connectez-vous à votre compte Azure.
  2. Sélectionnez la ressource Speech.
  3. Dans le groupe Gestion des ressources situé dans le volet gauche, sélectionnez Mise en réseau>Pare-feu et réseaux virtuels.
  4. Sélectionnez une option entre Tous les réseaux, Réseaux et points de terminaison privés sélectionnés et Désactivé.

Reconnaissance vocale personnalisée

Le tableau suivant décrit l’accessibilité des projets de reconnaissance vocale personnalisée en fonction du paramètre de sécurité Mise en réseau>Pare-feu et réseaux virtuels de la ressource Speech.

Notes

Si vous autorisez uniquement les points de terminaison privés dans l’onglet Mise en réseau>Connexions de point de terminaison privé, vous ne pouvez pas utiliser Speech Studio avec la ressource Speech. Vous avez quand même la possibilité de vous servir de la ressource Speech en dehors de Speech Studio.

Paramètre de sécurité réseau de la ressource Speech Accessibilité des projets Speech Studio
Tous les réseaux Sans restriction
Réseaux et points de terminaison privés sélectionnés Accessible à partir d’adresses IP publiques autorisées
Désactivé Inaccessible

Si vous sélectionnez Réseaux et points de terminaison privés sélectionnés, un onglet vous présente les options de configuration de l’accès Réseaux virtuels et Pare-feu. Dans la section Pare-feu, vous devez autoriser au moins une adresse IP publique et l’utiliser pour la connexion du navigateur avec Speech Studio.

Si vous autorisez uniquement l’accès au moyen du réseau virtuel, vous n’autorisez en pratique pas l’accès à la ressource Speech par le biais de Speech Studio. Vous avez quand même la possibilité de vous servir de la ressource Speech en dehors de Speech Studio.

Pour utiliser Custom Speech sans alléger les restrictions d’accès réseau sur votre ressource Speech de production, vous pouvez appliquer l’une des solutions de contournement suivantes.

  • Créez une autre ressource Speech destinée au développement et utilisable sur un réseau public. Préparez votre modèle personnalisé dans Speech Studio sur la ressource de développement, puis copiez le modèle dans votre ressource de production. Consultez la requête REST Models_CopyTo avec l’API REST de reconnaissance vocale.
  • Vous avez la possibilité de ne pas passer par Speech Studio pour Custom Speech. Utilisez l’API REST de reconnaissance vocale pour toutes les opérations Custom Speech.

Voix personnalisée et Création de contenu audio

Vous ne pouvez utiliser des projets Création de contenu audio Speech Studio que si le paramètre de sécurité réseau de la ressource Speech est défini sur Tous les réseaux.

Ajuster une application pour qu’elle utilise une ressource Speech sans points de terminaison privés

Dans cet article, nous avons remarqué à plusieurs reprises que l’activation d’un domaine personnalisé pour une ressource Speech était une opération irréversible. Une telle ressource utilise une autre méthode pour communiquer avec le service Speech, par rapport aux ressources qui utilisent des noms de points de terminaison régionaux.

Cette section explique comment utiliser une ressource Speech dotée d’un nom de domaine personnalisé mais dépourvue de points de terminaison privés avec les API REST du service Speech et le SDK Speech. Par exemple, cela pourrait être une ressource qui a été utilisée dans un scénario avec des points de terminaison privés, mais où tous les points de terminaison privés ont été supprimés par la suite.

Configuration DNS

Rappelez-vous qu’un nom DNS de domaine personnalisé de la ressource Speech avec point de terminaison privé est résolu à partir de réseaux publics. Dans ce cas, l’adresse IP résolue pointe vers un point de terminaison proxy d’un réseau virtuel. Ce point de terminaison est utilisé pour distribuer le trafic réseau à la ressource Azure AI Services avec des points de terminaison privés activés.

Toutefois, quand tous les points de terminaison privés de la ressource sont supprimés (ou juste après l’activation du nom de domaine personnalisé), l’enregistrement CNAME de la ressource Speech est reprovisionné. Il pointe désormais vers l’adresse IP du point de terminaison régional Azure AI Services correspondant.

Ainsi, la sortie de la commande nslookup ressemble à ceci :

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

Comparez-la avec la sortie de cette section.

Ressource Speech avec un nom de domaine personnalisé mais sans points de terminaison privés : Utilisation avec les API REST

API REST de reconnaissance vocale

L’utilisation de l’API REST de reconnaissance vocale est strictement équivalente à celle des ressources Speech avec des points de terminaison privés activés.

API REST de reconnaissance vocale pour audio court et API REST de synthèse vocale

Dans ce cas, l’utilisation de l’API REST de reconnaissance vocale pour audio court et l’utilisation de l’API REST de synthèse vocale ne diffèrent pas du cas général, à une exception près. (Voir la remarque suivante.) Vous devez utiliser les deux API comme cela est décrit dans la documentation de l’API REST de reconnaissance vocale pour audio court et celle de l’API REST de synthèse vocale.

Notes

Quand vous utilisez l’API REST de reconnaissance vocale pour audio court et l’API REST de synthèse vocale dans des scénarios de domaine personnalisé, utilisez une clé de ressource Speech transmise via l’en-tête Ocp-Apim-Subscription-Key. (Pour plus d’informations, consultez les sections API REST de reconnaissance vocale pour audio court et API REST de synthèse vocale.)

L’utilisation d’un jeton d’autorisation et sa transmission au point de terminaison spécial via l’en-tête Authorization fonctionnent uniquement si vous avez activé l’option d’accès Tous les réseaux dans la section Réseau de votre ressource Speech. Dans d’autres cas, vous obtiendrez une erreur Forbidden ou BadRequest lors de la tentative d’obtention d’un jeton d’autorisation.

Ressource Speech avec un nom de domaine personnalisé mais sans points de terminaison privés : Utilisation avec le SDK Speech

L’utilisation du SDK Speech avec des ressources Speech avec un domaine personnalisé activé sans points de terminaison privés équivaut au cas général, comme décrit dans la documentation du SDK Speech.

Si vous avez modifié votre code pour l’utiliser avec une ressource Speech avec des points de terminaison privés activés, tenez compte des éléments suivants.

Dans la section sur les ressources Speech avec des points de terminaison privés activés, nous avons expliqué comment déterminer l’URL de point de terminaison, comment la modifier et comment la rendre opérationnelle en initialisant l’instance de la classe SpeechConfig « à partir d’un point de terminaison »/« avec un point de terminaison ».

Toutefois, si vous tentez d’exécuter la même application après avoir supprimé tous les points de terminaison privés (en attendant le temps nécessaire au reprovisionnement de l’enregistrement DNS correspondant), vous obtenez une erreur de service interne (404). La raison à cela est que l’enregistrement DNS pointe désormais vers le point de terminaison Azure AI Services régional au lieu du proxy de réseau virtuel, et que les chemins d’URL comme /stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US y sont introuvables.

Vous devez restaurer votre application à l’instanciation standard de SpeechConfig dans le style du code suivant :

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

Utilisation simultanée de points de terminaison privés et de points de terminaison de service du Réseau virtuel

Les points de terminaison privés et les points de terminaison de service du Réseau virtuel peuvent être utilisés pour accéder simultanément à la même ressource Speech. Pour activer cette utilisation simultanée, vous devez utiliser l’option Réseaux et points de terminaison privés sélectionnés dans les paramètres réseau de la ressource Speech dans le portail Azure. Toutes les autres options ne sont pas prises en charge pour ce scénario.

Tarifs

Pour plus d’informations sur les tarifs, consultez Tarification Liaison privée Azure.

En savoir plus