Utilisation d'OCI Speech pour transcrire le langage naturel

Oracle Cloud Infrastructure (OCI) Speech est l'un des nombreux services d'IA natifs du cloud. Vous pouvez utiliser le service Speech pour convertir des fichiers audio en texte lisible stocké au format JSON.

La parole exploite la puissance du langage parlé en vous permettant de convertir facilement des fichiers audio contenant de la parole humaine en transcriptions de texte très précises. Le service est une application native OCI à laquelle vous pouvez accéder à l'aide d'une application Web, d'une API REST, d'un kit SDK, d'une CLI ou d'une console.

La reconnaissance vocale utilise la technologie de reconnaissance vocale automatique (ASR) pour fournir une transcription grammaticalement correcte des fichiers vidéo et audio. Speech gère les enregistrements audio de faible fidélité et transcrit des enregistrements difficiles tels que des réunions ou des appels au centre d'appels. Grâce à Speech, vous pouvez transformer des fichiers stockés dans OCI Object Storage ou une ressource de données en texte précis, normalisé, horodaté et filtré par des jurons. Cette fonction est disponible avec les services en aval. Par exemple, vous pouvez utiliser des services supplémentaires tels que la langue et les prévisions pour analyser le sentiment d'appel, cibler le contenu à des fins publicitaires, indexer vos dossiers multimédias et créer un moteur de recherche multimédia à l'aide d'Oracle Cloud Infrastructure Lakehouse.

Architecture

Cette architecture illustre la relation entre les différents composants d'un système standard dont OCI Speech est au cœur.

Cette architecture peut s'appliquer à de nombreux types d'applications. Par exemple, une application Web peut enregistrer la conversation d'un représentant du service d'assistance avec un client qui signale un problème. Le fichier audio de la conversation est enregistré dans OCI Object Storage, qui émet des événements pour les nouveaux fichiers audio. OCI Events déclenche une application OCI Functions qui crée une demande de transcription à l'aide d'un appel d'API REST vers le service OCI Speech. Speech prend le travail, extrait le fichier audio à partir d'OCI Object Storage, alimente le fichier en modèles acoustiques et linguistiques préentraînés et transfère la sortie vers un fichier texte JSON. Le fichier JSON est stocké dans OCI Object Storage. OCI Object Storage détecte le nouveau fichier texte et émet un événement. OCI Events déclenche OCI Functions pour extraire le fichier texte et télécharger le texte et les métadonnées vers une base de données MySQL. Les événements OCI déclenchent également des notifications OCI pour publier un message lorsque la transcription est prête et notifie l'application Web qui s'abonne à l'événement. L'application Web affiche la transcription dans le ticket créé par le représentant du service d'assistance.

L'application Web peut éventuellement extraire des métadonnées de fichier audio telles que la durée, la taille, la date et l'heure de début, puis les enregistrer dans le ticket du service d'assistance.

Les fichiers audio et texte stockés dans OCI Object Storage peuvent être transmis aux outils d'analyse en aval à l'aide d'Oracle Cloud Infrastructure Lakehouse (non illustré dans le diagramme).

Le diagramme suivant illustre cette architecture de référence.

Description de l'image architecture-ai-speech.png
Description de l'illustration architecture-ai-speech.png

architecture-ai-speech-oracle.zip

L'architecture comporte les composants suivants :

  • Région

    Une région Oracle Cloud Infrastructure est une zone géographique précise qui contient un ou plusieurs centres de données, appelés domaines de disponibilité. Les régions sont indépendantes les unes des autres et de grandes distances peuvent les séparer (à travers des pays voire des continents).

  • Domaines de disponibilité

    Les domaines de disponibilité sont des centres de données autonomes indépendants au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées de celles des autres, ce qui garantit la tolérance aux pannes. Les domaines de disponibilité ne partagent ni infrastructure (par exemple, alimentation, système de refroidissement), ni réseau de domaine de disponibilité interne. Par conséquent, une panne sur un domaine de disponibilité ne doit pas affecter les autres domaines de disponibilité de la région.

  • Domaines de pannes

    Un domaine de pannes est un regroupement de matériel et d'infrastructures au sein d'un domaine de disponibilité. Chaque domaine de disponibilité comporte trois domaines de pannes avec alimentation et matériel indépendants. Lorsque vous répartissez des ressources entre plusieurs domaines de pannes, vos applications peuvent tolérer les pannes de serveur physiques, de maintenance du système et d'alimentation au sein d'un domaine de pannes.

  • Réseau cloud virtuel (VCN) et sous-réseaux

    Un VCN est un réseau personnalisable défini par logiciel que vous configurez dans une région Oracle Cloud Infrastructure. Comme les réseaux de centre de données traditionnels, ils vous donnent le contrôle sur l'environnement réseau. Un réseau cloud virtuel peut comporter plusieurs blocs CIDR qui ne se chevauchent pas et que vous pouvez modifier après l'avoir créé. Vous pouvez segmenter un réseau cloud virtuel en plusieurs sous-réseaux ciblant une région ou un domaine de disponibilité. Chaque sous-réseau est composé d'une plage contiguë d'adresses qui ne chevauchent pas celles des autres sous-réseaux du réseau cloud virtuel. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.

  • Compartiment

    Les compartiments sont des partitions logiques inter-région au sein d'une location Oracle Cloud Infrastructure. Utilisez des compartiments pour organiser les ressources dans Oracle Cloud, en contrôler l'accès et définir des quotas d'utilisation. Pour contrôler l'accès aux ressources d'un compartiment donné, vous définissez des stratégies qui indiquent qui peut accéder aux ressources et les actions réalisables.

  • Equilibreur de charge

    Le service Oracle Cloud Infrastructure Load Balancing fournit une répartition de trafic automatisée à partir d'un point d'entrée unique vers plusieurs serveurs dans le back-end.

  • Liste de sécurité

    Pour chaque sous-réseau, vous pouvez créer des règles de sécurité qui indiquent la source, la destination et le type de trafic qui doivent être autorisés à entrer et sortir du sous-réseau.

  • Identity and Access Management (IAM)

    Oracle Cloud Infrastructure Identity and Access Management (IAM) est le plan de contrôle d'accès pour Oracle Cloud Infrastructure (OCI) et Oracle Cloud Applications. L'API IAM et l'interface utilisateur vous permettent de gérer les domaines d'identité et les ressources au sein du domaine d'identité. Chaque domaine d'identité OCI IAM représente une solution autonome de gestion des identités et des accès ou une population d'utilisateurs différente.

  • Object Storage

    Le stockage d'objets permet d'accéder rapidement à de grandes quantités de données, structurées ou non, de tout type de contenu, y compris des sauvegardes de base de données, des données analytiques et du contenu enrichi tel que des images et des vidéos. Vous pouvez stocker les données, puis les extraire directement à partir d'Internet ou de la plate-forme cloud, et ce, en toute sécurité. Vous pouvez redimensionner le stockage sans dégradation des performances ni de la fiabilité des services. Utilisez le stockage standard pour le stockage "à chaud" auquel vous devez accéder rapidement, immédiatement et fréquemment. Utilisez le stockage d'archive pour le stockage "à froid" que vous conservez pendant de longues périodes et auquel vous accédez rarement.

  • Functions

    Oracle Cloud Infrastructure Functions est une plate-forme Functions-as-a-Service (FaaS) entièrement gérée, colocative, hautement évolutive et à la demande. Il est alimenté par le moteur open source du projet Fn. Les fonctions vous permettent de déployer votre code, et de l'appeler directement ou de le déclencher en réponse à des événements. Oracle Functions utilise des conteneurs Docker hébergés dans Oracle Cloud Infrastructure Registry.

  • Evénements

    Les services Oracle Cloud Infrastructure émettent des événements, qui sont des messages structurés décrivant les modifications apportées dans les ressources. Les événements sont émis pour les opérations de création, de lecture, de mise à jour ou de suppression (CRUD), les modifications d'état de cycle de vie des ressources et les événements système qui affectent les ressources cloud.

  • Monitoring

    Le service Oracle Cloud Infrastructure Monitoring surveille de manière active et passive vos ressources cloud à l'aide de mesures pour surveiller les ressources et les alarmes afin de vous avertir lorsque ces mesures répondent aux déclencheurs spécifiés par les alarmes.

  • Audit

    Le service Oracle Cloud Infrastructure Audit enregistre automatiquement les appels vers toutes les adresses d'API publique Oracle Cloud Infrastructure prises en charge en tant qu'événements de journal. Actuellement, tous les services prennent en charge la journalisation par Oracle Cloud Infrastructure Audit.

  • Notifications

    Le service Oracle Cloud Infrastructure Notifications diffuse des messages vers des composants distribués par le biais d'un modèle publication-abonnement qui délivre des messages sécurisés, durables, extrêmement fiables et à faible latence pour les applications hébergées sur Oracle Cloud Infrastructure.

  • Oracle Cloud Infrastructure Speech

    Oracle Cloud Infrastructure Speech est un nouveau service d'IA qui utilise la reconnaissance vocale automatique pour convertir le discours en texte.

  • Oracle MySQL Database Service

    Oracle MySQL Database Service est un service de base de données Oracle Cloud Infrastructure (OCI) entièrement géré qui permet aux développeurs de développer et de déployer rapidement des applications sécurisées natives du cloud. Optimisé pour et exclusivement disponible dans OCI, Oracle MySQL Database Service est conçu, géré et pris en charge à 100 % par les équipes d'ingénierie OCI et MySQL.

    Oracle MySQL Database Service dispose d'un moteur d'analyse intégré et hautes performances (HeatWave) qui permet d'exécuter des analyses sophistiquées en temps réel directement sur une base de données MySQL opérationnelle.

Recommandations

Vos exigences peuvent différer de l'architecture décrite ici. Utilisez les recommandations suivantes comme point de départ.

  • VCN

    Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez d'attacher aux sous-réseaux du VCN. Utilisez des blocs CIDR qui se trouvent dans l'espace d'adressage IP privé standard.

    Sélectionnez les blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données sur site ou un autre fournisseur cloud) vers lequel vous prévoyez de configurer des connexions privées.

    Après avoir créé un VCN, vous pouvez modifier, ajouter et supprimer ses blocs CIDR.

    Lorsque vous concevez les sous-réseaux, tenez compte de vos exigences en matière de flux de trafic et de sécurité. Attachez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, qui peut servir de limite de sécurité.

  • Sécurité

    Utilisez Oracle Cloud Guard pour surveiller et maintenir la sécurité de vos ressources dans Oracle Cloud Infrastructure de manière proactive. Cloud Guard utilise des recettes de détecteur que vous pouvez définir pour examiner vos ressources à la recherche de failles de sécurité et pour surveiller les opérateurs et les utilisateurs à la recherche d'activités à risque. En cas de détection d'une mauvaise configuration ou d'une activité non sécurisée, Cloud Guard recommande des actions correctives et aide à effectuer ces actions, en fonction des recettes de répondeur que vous pouvez définir.

    Pour les ressources nécessitant une sécurité maximale, Oracle recommande d'utiliser des zones de sécurité. Une zone de sécurité est un compartiment associé à une recette de stratégies de sécurité définie par Oracle basée sur les meilleures pratiques. Par exemple, les ressources d'une zone de sécurité ne doivent pas être accessibles à partir du réseau Internet public et elles doivent être cryptées à l'aide de clés gérées par le client. Lorsque vous créez et mettez à jour des ressources dans une zone de sécurité, Oracle Cloud Infrastructure valide les opérations par rapport aux stratégies de la recette de zone de sécurité et refuse les opérations qui enfreignent l'une des stratégies.

  • Cloud Guard

    Clonez et personnalisez les recettes par défaut fournies par Oracle pour créer des recettes de détecteur et de répondeur personnalisées. Ces recettes vous permettent de spécifier le type de violation de sécurité qui génère un avertissement et les actions autorisées à les exécuter. Par exemple, vous pouvez détecter les buckets Object Storage dont la visibilité est définie sur Public.

    Appliquez Cloud Guard au niveau de la location pour couvrir la portée la plus large et réduire la charge administrative liée à la maintenance de plusieurs configurations.

    Vous pouvez également utiliser la fonctionnalité de liste gérée pour appliquer certaines configurations aux détecteurs.

  • Security Zones

    Clonez et personnalisez les recettes par défaut fournies par Oracle pour créer des recettes de détecteur et de répondeur personnalisées. Ces recettes vous permettent de spécifier le type de violation de sécurité qui génère un avertissement et les actions autorisées à les exécuter. Par exemple, vous pouvez détecter les buckets Object Storage dont la visibilité est définie sur Public.

    Appliquez Cloud Guard au niveau de la location pour couvrir la portée la plus large et réduire la charge administrative liée à la maintenance de plusieurs configurations.

    Vous pouvez également utiliser la fonctionnalité de liste gérée pour appliquer certaines configurations aux détecteurs.

  • Bande passante d'équilibreur de charge

    Lors de la création de l'équilibreur de charge, vous pouvez soit sélectionner une forme prédéfinie qui fournit une bande passante fixe, soit spécifier une forme flexible personnalisée dans laquelle vous définissez une plage de bande passante et laisser le service redimensionner la bande passante automatiquement en fonction des modèles de trafic. Selon l'une ou l'autre approche, vous pouvez modifier la forme à tout moment après avoir créé l'équilibreur de charge.

Points à prendre en compte

  • Performances

    Utilisez les services natifs du cloud Oracle - Events, Functions, Notifications et AI Speech pour déployer des applications sans serveur qui évoluent automatiquement en fonction de la charge de travail. Les services sont gérés par Oracle.

    Le travail de synthèse vocale de l'IA est traité de manière stricte en premier lieu. Vous pouvez créer une file d'attente de travaux avec un maximum de 10 000 tâches au niveau du locataire. Si vous soumettez un travail qui dépasse le nombre maximal de tâches, ce travail échoue. Les emplois sont conservés pendant 90 jours.

  • Accès

    OCI Speech prend en charge l'accès via la console OCI, le client de kit SDK Java et Python et l'interface de ligne de commande OCI. Lors du test, il est recommandé d'utiliser l'outil CLI ou la console.

  • Disponibilité

    Dans cet exemple, la base de données n'est pas hautement disponible. Pour les applications critiques, envisagez d'exécuter MySQL Database Service en mode haute disponibilité avec 3 répliques.

  • Coût

    Utilisez les services cloud natifs Oracle - Events, Functions, Notifications et AI Speech pour déployer l'application sans serveur sans frais fixes. Vous ne payez pour la demande de service que lorsque vous l'utilisez.

Remerciements

  • Auteurs : Wei Han, Zaid Al Qaddoumi
  • Contributeurs : Sreya Dutta

Journal des modifications

Ce journal répertorie les modifications importantes :