Reconnaissance vocale Python avec SpeechRecognition - PythonAlgos






Référence

Avancé

Bluetooth

Voir aussi

basic , input , music , led , Math (blocks) , String , game , images , pins , serial , control , radio , bluetooth





Créez votre propre résumé de texte AI en Python

Pour cet exemple, nous allons construire un rĂ©sumĂ© de texte extractif naĂŻf en 25 lignes de Python. Un rĂ©sumĂ© extractif est un rĂ©sumĂ© d'un document directement extrait du texte. Pour plus d'informations sur les rĂ©sumĂ©s IA, consultez cet article sur Qu'est-ce que le rĂ©sumĂ© de texte IA et comment puis-je l'utiliser ?

Nous allons construire un rĂ©sumĂ© de texte IA de deux maniĂšres. D'abord avec spaCy , puis avec The Text API . spaCy est l'une des bibliothĂšques Python open source pour le traitement du langage naturel. L'API Text est la meilleure API complĂšte d'analyse des sentiments en ligne.

Dans cet article sur la crĂ©ation d'un AI Text Summarizer en Python, nous aborderons :

Construire un résumé de texte AI en moins de 30 lignes de Python

Avant de pouvoir commencer avec le code, nous devons installer spaCy et tĂ©lĂ©charger un modĂšle. Nous pouvons le faire dans le terminal avec les deux commandes suivantes. Le en_core_web_smmodĂšle est le plus petit modĂšle et le plus rapide pour dĂ©marrer. Vous pouvez Ă©galement tĂ©lĂ©charger en_core_web_mden_core_web_lg, et en_core_web_trfpour d'autres modĂšles plus grands en anglais.

configuration requise pour la bibliothÚque de résumés de texte
pip install spacy python -m spacy download en_core_web_sm

Commençons par le code de notre synthĂ©tiseur de texte ! Tout d'abord, nous allons importer spacyet charger le modĂšle de langage que nous avons tĂ©lĂ©chargĂ© prĂ©cĂ©demment.

importer la bibliothĂšque et le modĂšle de synthĂšse de texte
import spacy nlp = spacy.load("en_core_web_sm")

Pour ce didacticiel, nous allons crĂ©er un rĂ©sumĂ© de texte extractif simple basĂ© uniquement sur les mots du texte et la frĂ©quence Ă  laquelle ils sont mentionnĂ©s. Nous allons dĂ©composer ce rĂ©sumĂ© de texte en quelques Ă©tapes simples.

Nous allons d'abord crĂ©er un dictionnaire de mots pour suivre le nombre de mots. Ensuite, nous allons noter chaque phrase en fonction de la frĂ©quence Ă  laquelle chaque mot de cette phrase apparaĂźt. AprĂšs cela, nous allons trier les phrases en fonction de leur score. Enfin, nous prendrons les trois phrases les mieux notĂ©es et les renverrons dans le mĂȘme ordre qu'elles apparaissaient Ă  l'origine dans le texte.

Avant d'aborder tout cela, chargeons notre texte et transformons-le en un SpaCy Document . Vous pouvez utiliser le texte que vous voulez. Le texte fourni n'est qu'un exemple qui parle de moi et de ce blog.

résumé de texte - exemple de texte
# extractive summary by word count text = """This is an example text. We will use seven sentences and we will return 3. This blog is written by Yujian Tang. Yujian is the best software content creator. This is a software content blog focused on Python, your software career, and Machine Learning. Yujian's favorite ML subcategory is Natural Language Processing. This is the end of our example.""" # tokenize doc = nlp(text)

Obtenir que tous les mots comptent

Maintenant que nous avons notre texte sous forme de Doc, nous pouvons obtenir tous nos comptes de mots. Vous pouvez en fait le faire avant en divisant la chaĂźne sur les espaces, mais c'est plus facile et nous aurons de toute façon besoin du Doc plus tard.

Commençons par crĂ©er un dictionnaire de mots. Ensuite, nous allons parcourir le texte et vĂ©rifier si chaque mot se trouve dans le dictionnaire. Si le mot est dans le dictionnaire, nous incrĂ©menterons son compteur, sinon nous mettrons son compteur Ă  un. Nous enregistrerons chaque mot en format minuscule.

créer un dictionnaire de mots pour le résumé de texte ai
# create dictionary word_dict = {} # loop through every sentence and give it a weight for word in doc: word = word.text.lower() if word in word_dict: word_dict[word] += 1 else: word_dict[word] = 1

Notation des phrases pour notre résumé de texte AI

Une fois que nous avons rassemblĂ© tous les mots, nous pouvons les utiliser pour marquer nos phrases. Nous allons crĂ©er une liste de tuples. Chaque tuple contient des informations dont nous avons besoin sur la phrase - le texte de la phrase, le score de la phrase et l'index de la phrase d'origine. Nous allons parcourir chaque index et chaque phrase dans les phrases Doc Ă©numĂ©rĂ©es.

La enumeratecommande renvoie un index et l'Ă©lĂ©ment Ă  cet index pour tout itĂ©rable. Pour chaque mot de la phrase, nous ajouterons le score du mot au score de la phrase. Ă€ la fin de la boucle sur tous les mots de la phrase, nous ajoutons le texte de la phrase, le score de la phrase normalisĂ© par la longueur et l'index d'origine.

notez chaque phrase pour le résumé de texte
# create a list of tuple (sentence text, score, index) sents = [] # score sentences sent_score = 0 for index, sent in enumerate(doc.sents): for word in sent: word = word.text.lower() sent_score += word_dict[word] sents.append((sent.text.replace("\n", " "), sent_score/len(sent), index))

Tri des phrases pour le récapitulatif de texte

Maintenant que notre liste de phrases est crĂ©Ă©e, nous allons devoir les trier afin d'obtenir les phrases les mieux notĂ©es dans notre rĂ©sumĂ©. Nous allons d'abord utiliser une fonction lambda pour trier par la version nĂ©gative du score.

Pourquoi nĂ©gatif ? Parce que la fonction de tri automatique trie du plus petit au plus grand. AprĂšs avoir triĂ© par score, nous prenons les 3 premiers, puis nous les trions Ă  nouveau par index afin que notre rĂ©sumĂ© soit dans l'ordre. Vous pouvez prendre autant de phrases que vous le souhaitez et mĂȘme modifier le nombre de phrases que vous souhaitez en fonction de la longueur du texte.

trouver les phrases les plus importantes pour le résumé de texte
# sort sentence by word occurrences sents = sorted(sents, key=lambda x: -x[1]) # return top 3 sents = sorted(sents[:3], key=lambda x: x[2])

Renvoi du résumé

Tout ce que nous avons Ă  faire pour obtenir notre rĂ©sumĂ© rĂ©sultant est de prendre la liste des phrases triĂ©es et de les assembler, sĂ©parĂ©es par un espace. Enfin, nous l'imprimerons pour jeter un coup d'Ɠil.

python de synthĂšse de texte
# compile them into text summary_text = "" for sent in sents: summary_text += sent[0] + " " print(summary_text)

Une fois que nous avons exĂ©cutĂ© notre programme, nous devrions voir un exemple comme celui ci-dessous. C'est tout ce qu'il y a Ă  faire pour crĂ©er un rĂ©sumĂ© de texte simple en Python avec spaCy !

exemple de sortie de résumé de texte ai
exemple de sortie de résumé de texte

Construire un résumé de texte AI en 15 lignes de Python

Nous avons donc expliquĂ© comment crĂ©er un rĂ©sumĂ© de texte AI en moins de 30 lignes de code, faisons-le Ă©galement en 15. Pour cette partie du didacticiel, nous n'avons qu'Ă  envoyer une requĂȘte HTTP. Avant de commencer, nous devrons nous rendre sur l'API Text et nous inscrire pour obtenir une clĂ© API gratuite. Une fois que vous vous ĂȘtes enregistrĂ© pour une clĂ©, vous devrez installer la requestsbibliothĂšque.

synthĂ©tiseur de texte ai – bibliothĂšque de requĂȘtes
pip install requests

Nous allons importer les bibliothĂšques dont nous avons besoin pour commencer. Nous utiliserons requestspour envoyer notre requĂȘte HTTP et jsonpour analyser la rĂ©ponse.

importations de résumés de texte ai
import requests import json from config import apikey

Configuration de la requĂȘte API

Configurons la requĂȘte. Le texte que nous allons rĂ©sumer est une description de l'API Text et de ce qu'elle peut faire. Nous devrons Ă©galement configurer des en-tĂȘtes, le corps et le point de terminaison de l'URL. Les en-tĂȘtes indiqueront au serveur que le contenu que nous envoyons est au format JSON et transmettront Ă©galement la clĂ© API que nous avons obtenue prĂ©cĂ©demment. Le corps passera simplement le texte que nous avons comme attribut "texte". L'URL sera le summarizepoint de terminaison de l'API Text.

éléments de demande de résumé de texte ai
text = "The Text API is easy to use and useful for anyone who needs to do text processing. It's the best Text Processing web API. The Text API allows you to do amazing NLP without having to download or manage any models. The Text API provides many NLP capabilities. These capabilities range from custom Named Entity Recognition (NER) to Summarization to extracting the Most Common Phrases. NER and Summarizations are both commonly used endpoints with business use cases. Use cases include identifying entities in articles, summarizing news articles, and more. The Text API is built on a transformer model." headers = { "Content-Type": "application/json", "apikey": apikey } body = { "text": text } url = "https://app.thetextapi.com/text/summarize"

Analyse de la réponse AI Text Summarizer

AprĂšs avoir configurĂ© la requĂȘte, tout ce que nous avons Ă  faire est d'envoyer la requĂȘte, puis d'analyser notre rĂ©ponse via JSON. La requĂȘte renverra Ă  la fois un userĂ©lĂ©ment et un summaryĂ©lĂ©ment. Nous avons seulement besoin de la valeur de l' summaryarticle. 

analyser la réponse du résumé de texte
response = requests.post(url, headers=headers, json=body) summary = json.loads(response.text)["summary"] print(summary)

ExĂ©cutons ceci et voyons notre rĂ©ponse. Cela devrait ressembler Ă  la rĂ©ponse ci-dessous.

exemple de sortie de résumé de texte
exemple de sortie de résumé de texte

Vous pouvez en savoir plus sur d'autres concepts NLP tels que la reconnaissance d'entitĂ© nommĂ©e (NER) , le balisage de la partie du discours (POS) , et plus encore sur ce blog .

Lectures complémentaires

Apprendre encore plus

Pour en savoir plus, n'hĂ©sitez pas Ă  me contacter @yujian_tang sur Twitter, connectez-vous avec moi sur LinkedIn et rejoignez notre Discord . N'oubliez pas de suivre le blog pour rester Ă  jour avec des projets Python sympas et des moyens d'amĂ©liorer vos compĂ©tences en logiciel et Python ! Si vous avez aimĂ© cet article, merci de le tweeter, de le partager sur LinkedIn ou de le dire Ă  vos amis !


Reconnaissance vocale Python avec SpeechRecognition - PythonAlgos


Reconnaissance vocale Python avec SpeechRecognition

Reconnaissance vocale Python avec SpeechRecognition

Reconnaissance vocale avec SpeechRecognition ? Ouais. SpeechRecognition est une bibliothĂšque de reconnaissance vocale automatique (ASR) pour Python. SpeechRecognition est une bibliothĂšque wrapper qui fonctionne avec plusieurs backends, notamment CMU Sphinx, Google Cloud et Azure. Trouvez le code que nous couvrons ci-dessous dans le Github officiel de reconnaissance vocale Python .

Dans cet article, nous verrons comment utiliser la bibliothĂšque Python SpeechRecognition avec plusieurs backends. Nous couvrirons :

  • Qu'est-ce que la bibliothĂšque Python SpeechRecognition ?
  • Premiers pas avec la reconnaissance vocale Python
  • PrĂ©requis pour la reconnaissance vocale Python
  • Reconnaissance vocale Python via CMU Sphinx
  • Reconnaissance vocale Ă  l'aide de la reconnaissance vocale Google
  • Google Cloud Speech to Text pour la reconnaissance vocale avec Python SpeechRecognition
  • Reconnaissance vocale Python avec Wit.AI
  • Microsoft Azure Speech to Text pour la reconnaissance vocale Python
  • Microsoft Bing Voice Recognition pour faire de la reconnaissance vocale en Python
  • Reconnaissance vocale Python avec Houndify
  • IBM Speech to Text dans Python SpeechRecognition
  • Reconnaissance vocale Python avec d'autres bibliothĂšques
  • RĂ©sumĂ© de la reconnaissance vocale Python avec la bibliothĂšque SpeechRecognition

Qu'est-ce que la bibliothĂšque Python SpeechRecognition ?

Python SpeechRecognition est un projet sous licence BSD 3-Clause de 2014 Ă  2017 par Anthony Zhang. C'est un wrapper qui se connecte Ă  plusieurs API et moteurs. La bibliothĂšque SpeechRecognition est annoncĂ©e pour prendre en charge CMU Sphinx, Google Speech Recognition, Google Cloud Speech API, Wit.ai, Microsoft Bing Voice Recognition, Houndify API, IBM Speech to Text et Snowboy Hotword Detection. 

Notez que Snowboy n'est plus lĂ . Un inconvĂ©nient de SpeechRecognition est que cette bibliothĂšque de reconnaissance vocale Python manque de puissants backends. Certains backends puissants actuels qui manquent incluent PyTorch, Tensorflow et des API Web plus rĂ©centes comme Deepgram . 

Premiers pas avec la reconnaissance vocale Python

Prenons du recul par rapport au code et comprenons comment la reconnaissance vocale Python se produit Ă  un niveau Ă©levĂ©. La reconnaissance vocale automatique peut ĂȘtre effectuĂ©e Ă  la fois en temps rĂ©el en diffusant de l'audio et de maniĂšre asynchrone sur des fichiers audio. Dans cet article, nous allons expliquer comment utiliser SpeechRecognition pour exĂ©cuter la reconnaissance vocale asynchrone sur un fichier audio.

Nous commençons avec les donnĂ©es audio , qui ressemblent Ă  une forme d'onde comme le montre l'image ci-dessus. Python convertit ces donnĂ©es de forme d'onde sous la forme d'un ensemble de nombres appelĂ© vecteur. Nous combinons plusieurs vecteurs dans une matrice. Ces donnĂ©es au format vecteur/matrice sont ensuite introduites dans un rĂ©seau de neurones formĂ© qui nous donne une prĂ©diction.

Maintenant que nous comprenons comment fonctionne la reconnaissance vocale, entrons dans le code. La bibliothĂšque Python SpeechRecognition nous permet d'utiliser de nombreux modĂšles diffĂ©rents pour faire de la reconnaissance vocale. Chacune de ces sections couvre un modĂšle/moteur/backend diffĂ©rent qui effectue la reconnaissance vocale. Vous pouvez obtenir des rĂ©sultats diffĂ©rents pour chaque application.

Prérequis pour la reconnaissance vocale Python

Tout d'abord, nous devons installer la bibliothĂšque Python SpeechRecognition. Nous pouvons le faire avec la ligne pip install SpeechRecognitionUne fois la bibliothĂšque installĂ©e, nous commençons. Tout le code ci-dessous appartient au mĂȘme fichier.

La configuration commence par importer d'abord la speech_recognitionbibliothĂšque et le fichier osEnsuite, nous utilisons la osbibliothĂšque pour trouver notre fichier audio. Dans cet exemple, il y a un fichier WAV anglais, un fichier AIFF français et un fichier FLAC chinois. Ensuite, nous devons instancier le systĂšme de reconnaissance vocale SpeechRecognition. Ă€ partir de lĂ , nous ouvrons le fichier audio en tant que source et le lisons dans le systĂšme de reconnaissance vocale.

import speech_recognition as sr
 
# obtain path to "english.wav" in the same folder as this script
from os import path
AUDIO_FILE = path.join(path.dirname(path.realpath(__file__)), "english.wav")
# AUDIO_FILE = path.join(path.dirname(path.realpath(__file__)), "french.aiff")
# AUDIO_FILE = path.join(path.dirname(path.realpath(__file__)), "chinese.flac")
 
# use the audio file as the audio source
r = sr.Recognizer()
with sr.AudioFile(AUDIO_FILE) as source:
   audio = r.record(source)  # read the entire audio file

Reconnaissance vocale Python via CMU Sphinx

Le premier backend que nous essayons pour cet exemple est CMU Sphinx. CMU Sphinx est un moteur de reconnaissance vocale automatique open source issu de l'UniversitĂ© Carnegie Mellon. CMU Sphinx a Ă©tĂ© en grande partie inactif au cours de la derniĂšre dĂ©cennie, mais la maintenance vient de redĂ©marrer en 2022 !

Tout ce que nous avons Ă  faire pour utiliser le backend CMU Sphinx avec Python SpeechRecognition est d'appeler la recognize_sphinx()fonction sur les donnĂ©es audio. Nous traitons deux erreurs diffĂ©rentes, les erreurs de valeur inconnue et les erreurs de requĂȘte.

# recognize speech using Sphinx
try:
   print("Sphinx thinks you said " + r.recognize_sphinx(audio))
except sr.UnknownValueError:
   print("Sphinx could not understand audio")
except sr.RequestError as e:
   print("Sphinx error; {0}".format(e))

Reconnaissance vocale Ă  l'aide de la reconnaissance vocale Google

Ensuite, nous verrons comment utiliser la reconnaissance vocale de Google. Cela utilise l'API de reconnaissance vocale Chrome. Ce service ne nĂ©cessite pas de compte Google Cloud Developer, mais peut ĂȘtre dĂ©sactivĂ© par Google Ă  tout moment. Ce service fonctionnait lorsque ce code a Ă©tĂ© Ă©crit, votre kilomĂ©trage peut varier.

Tout comme CMU Sphinx, la mise en Ɠuvre est simple. Nous appelons simplement recognize_googleles donnĂ©es audio. Nous gĂ©rons Ă©galement les deux mĂȘmes types d'erreurs, une erreur de valeur inconnue et une erreur de requĂȘte.

# recognize speech using Google Speech Recognition
try:
   # for testing purposes, we're just using the default API key
   # to use another API key, use `r.recognize_google(audio, key="GOOGLE_SPEECH_RECOGNITION_API_KEY")`
   # instead of `r.recognize_google(audio)`
   print("Google Speech Recognition thinks you said " + r.recognize_google(audio))
except sr.UnknownValueError:
   print("Google Speech Recognition could not understand audio")
except sr.RequestError as e:
   print("Could not request results from Google Speech Recognition service; {0}".format(e))

Google Cloud Speech to Text pour la reconnaissance vocale avec Python SpeechRecognition

Cette section couvre l'utilisation de Google Cloud Speech to Text. Google Cloud Speech to Text est l'outil Google Cloud Platform qui effectue la reconnaissance vocale automatique. C'est un outil plug and play. Google propose des didacticiels sur l'utilisation de Google Cloud Speech to Text avec Go, Java, Python et Node JS.

Contrairement Ă  l'option CMU Sphinx ci-dessus, Google Cloud Speech to Text nĂ©cessite des informations d'identification. Google Cloud Speech to Text fournit des informations d'identification sous la forme d'un fichier JSON. Lors de l'appel de la fonction pour cet outil, recognize_gooogle_cloudnous transmettons les donnĂ©es audio et les informations d'identification. Tout comme CMU Sphinx, nous gĂ©rons les deux mĂȘmes erreurs, les valeurs inconnues et les erreurs de requĂȘte. 

# recognize speech using Google Cloud Speech
GOOGLE_CLOUD_SPEECH_CREDENTIALS = r"""INSERT THE CONTENTS OF THE GOOGLE CLOUD SPEECH JSON CREDENTIALS FILE HERE"""
try:
   print("Google Cloud Speech thinks you said " + r.recognize_google_cloud(audio, credentials_json=GOOGLE_CLOUD_SPEECH_CREDENTIALS))
except sr.UnknownValueError:
   print("Google Cloud Speech could not understand audio")
except sr.RequestError as e:
   print("Could not request results from Google Cloud Speech service; {0}".format(e))

Reconnaissance vocale Python avec Wit.AI

Wit AI est un outil de reconnaissance vocale acquis par Facebook (Meta) en 2015. Ils n'ont pas beaucoup d'informations sur leur blog sur qui ils sont ou ce qu'ils font. Heureusement, nous pouvons nous interfacer avec Python SpeechRecognition pour l'utiliser. Tout comme Google Cloud Speech to Text, Wit AI fonctionne avec une clĂ© API. La clĂ© API de Wit est une chaĂźne alphanumĂ©rique majuscule de 32 caractĂšres.

Comme tous les autres exemples ci-dessus, SpeechRecognition fournit une fonction intĂ©grĂ©e pour Wit AI. Tout ce que nous faisons est d'appeler recognize_witavec les donnĂ©es audio et de transmettre la clĂ© API Wit AI dans le keyparamĂštre. Comme toutes les options ci-dessus, nous gĂ©rons les deux mĂȘmes erreurs.

# recognize speech using Wit.ai
WIT_AI_KEY = "INSERT WIT.AI API KEY HERE"  # Wit.ai keys are 32-character uppercase alphanumeric strings
try:
   print("Wit.ai thinks you said " + r.recognize_wit(audio, key=WIT_AI_KEY))
except sr.UnknownValueError:
   print("Wit.ai could not understand audio")
except sr.RequestError as e:
   print("Could not request results from Wit.ai service; {0}".format(e))

Microsoft Azure Speech to Text pour la reconnaissance vocale Python

Microsoft Azure Speech to Text est la version Microsoft de Google Cloud Speech to Text. La clĂ© API pour Azure Speech to Text est une chaĂźne hexadĂ©cimale minuscule de 32 caractĂšres. La mĂȘme longueur que Wit mais un contenu lĂ©gĂšrement diffĂ©rent. Beaucoup plus court que le fichier JSON utilisĂ© par Google Cloud Speech to Text.

La bibliothĂšque Python Speech Recognition facilite Ă©normĂ©ment l'appel de l'un de ces backends. Dans ce cas, nous appelons recognize_azureet transmettons les donnĂ©es audio et la clĂ© API Azure Speech to Text. Tout comme CMU Sphinx et Google Cloud Speech to Text, nous gĂ©rons les valeurs inconnues et les erreurs de requĂȘte.

# recognize speech using Microsoft Azure Speech
AZURE_SPEECH_KEY = "INSERT AZURE SPEECH API KEY HERE"  # Microsoft Speech API keys 32-character lowercase hexadecimal strings
try:
   print("Microsoft Azure Speech thinks you said " + r.recognize_azure(audio, key=AZURE_SPEECH_KEY))
except sr.UnknownValueError:
   print("Microsoft Azure Speech could not understand audio")
except sr.RequestError as e:
   print("Could not request results from Microsoft Azure Speech service; {0}".format(e))

Microsoft Bing Voice Recognition pour faire de la reconnaissance vocale en Python

Pourquoi Microsoft propose-t-il deux outils de reconnaissance vocale diffĂ©rents ? En raison d'un dysfonctionnement de l'entreprise. Microsoft Bing Voice Recognition est un autre outil de reconnaissance vocale de Microsoft. Il n'Ă©tait peut-ĂȘtre pas sur Azure au moment de la rĂ©daction de ce code, mais il l'est certainement maintenant. 

Bing utilise une clĂ© API au mĂȘme format que la clĂ© API Azure. Vous fait vraiment rĂ©flĂ©chir, pourquoi ces deux-lĂ  sont-ils diffĂ©rents? Quoi qu'il en soit, nous faisons appel recognize_bingaux donnĂ©es audio avec la clĂ© API Bing pour obtenir notre transcription. Comme tous les autres backends ci-dessus, nous gĂ©rons les deux mĂȘmes erreurs.

# recognize speech using Microsoft Bing Voice Recognition
BING_KEY = "INSERT BING API KEY HERE"  # Microsoft Bing Voice Recognition API keys 32-character lowercase hexadecimal strings
try:
   print("Microsoft Bing Voice Recognition thinks you said " + r.recognize_bing(audio, key=BING_KEY))
except sr.UnknownValueError:
   print("Microsoft Bing Voice Recognition could not understand audio")
except sr.RequestError as e:
   print("Could not request results from Microsoft Bing Voice Recognition service; {0}".format(e))

Reconnaissance vocale Python avec Houndify

Houndify est une plateforme d'IA vocale de SoundHound. Ils offrent plus qu'une simple reconnaissance vocale automatique. Houndify fournit Ă©galement une comprĂ©hension du langage naturel et des capacitĂ©s de synthĂšse vocale. Contrairement aux outils de reconnaissance vocale Azure et Google Cloud, Houndify utilise deux clĂ©s API.

Houndify nĂ©cessite un identifiant et une clĂ©. Ces deux chaĂźnes sont codĂ©es en base 64. L'utilisation de la reconnaissance vocale de Houndify avec Python SpeechRecognition est aussi simple que les autres moteurs. Nous appelons recognize_houndifyet transmettons les donnĂ©es audio, l'ID et la clĂ©.

# recognize speech using Houndify
HOUNDIFY_CLIENT_ID = "INSERT HOUNDIFY CLIENT ID HERE"  # Houndify client IDs are Base64-encoded strings
HOUNDIFY_CLIENT_KEY = "INSERT HOUNDIFY CLIENT KEY HERE"  # Houndify client keys are Base64-encoded strings
try:
   print("Houndify thinks you said " + r.recognize_houndify(audio, client_id=HOUNDIFY_CLIENT_ID, client_key=HOUNDIFY_CLIENT_KEY))
except sr.UnknownValueError:
   print("Houndify could not understand audio")
except sr.RequestError as e:
   print("Could not request results from Houndify service; {0}".format(e))

IBM Speech to Text dans Python SpeechRecognition

Le dernier backend Python SpeechRecognition que nous allons couvrir dans cet article est IBM Speech to Text . Il s'agit du concurrent d'IBM Ă  Google Cloud et Azure speech to text. Il est construit Ă  partir de la lĂ©gendaire Watson AI d'IBM. L'interface API est lĂ©gĂšrement diffĂ©rente en ce sens qu'elle utilise un nom d'utilisateur et un mot de passe. Le nom d'utilisateur n'est pas dans un format facile, ce qui n'est pas bon.

Vous savez dĂ©jĂ  que SpeechRecognition fournit une fonction pour appeler ce moteur. Nous appelons la recognize_ibmfonction. Nous lui transmettons les donnĂ©es audio, le nom d'utilisateur et le mot de passe. Tout comme nous l'avons fait ci-dessus, nous gĂ©rons Ă©galement les deux mĂȘmes types d'erreurs : les valeurs inconnues et les erreurs de requĂȘte.

IBM_USERNAME = "INSERT IBM SPEECH TO TEXT USERNAME HERE"  # IBM Speech to Text usernames are strings of the form XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
IBM_PASSWORD = "INSERT IBM SPEECH TO TEXT PASSWORD HERE"  # IBM Speech to Text passwords are mixed-case alphanumeric strings
try:
   print("IBM Speech to Text thinks you said " + r.recognize_ibm(audio, username=IBM_USERNAME, password=IBM_PASSWORD))
except sr.UnknownValueError:
   print("IBM Speech to Text could not understand audio")
except sr.RequestError as e:
   print("Could not request results from IBM Speech to Text service; {0}".format(e))

Reconnaissance vocale Python avec d'autres bibliothĂšques

Python SpeechRecognition a Ă©tĂ© crĂ©Ă© au milieu des annĂ©es 2010. Bien qu'il soit toujours utile et pertinent, il lui manque quelques puissantes bibliothĂšques modernes. Depuis la fin des annĂ©es 2010, nous avons vu la montĂ©e en puissance de PyTorch et TensorFlow dans l'apprentissage automatique. Maintenant, nous avons des bibliothĂšques comme PyTorch TorchAudio qui peuvent manipuler des donnĂ©es audio et nous aider Ă  faire de la reconnaissance vocale. 

D'autres bibliothĂšques de reconnaissance vocale en Python incluent DeepSpeech, Kaldi et wav2vec. DeepSpeech est issu d'un article de Baidu de 2014. Kaldi a commencĂ© en 2009 Ă  Johns Hopkins. Facebook a annoncĂ© wav2vec comme outil ASR en 2019. Nous avons Ă©galement vu la montĂ©e en puissance de sociĂ©tĂ©s ASR comme AssemblyAI, Deepgram et Rev AI.

Résumé de la reconnaissance vocale Python avec la bibliothÚque SpeechRecognition

Cet article sert d'introduction Ă  la reconnaissance vocale Python. Nous expliquons comment utiliser la bibliothĂšque Python SpeechRecognition pour interagir avec plusieurs backends. Pour faire une reconnaissance vocale plus avancĂ©e, nous pouvons interagir directement avec ces backends ou en utiliser certains non inclus.

Les backends avec lesquels nous avons interagi sont : CMU Sphinx, Google Cloud Speech to Text, Microsoft Azure/Bing Speech to Text, Houndify, Wit AI et IBM Speech to Text. Nous avons Ă©galement mentionnĂ© que nous pouvons faire de l'ASR avec des bibliothĂšques d'apprentissage automatique comme TensorFlow et PyTorch ainsi que des API Web. 

Lectures complémentaires

Apprendre encore plus

Pour en savoir plus, n'hĂ©sitez pas Ă  me contacter @yujian_tang sur Twitter, connectez-vous avec moi sur LinkedIn et rejoignez notre Discord . N'oubliez pas de suivre le blog pour rester Ă  jour avec des projets Python sympas et des moyens d'amĂ©liorer vos compĂ©tences en logiciel et Python ! Si vous avez aimĂ© cet article, merci de le tweeter, de le partager sur LinkedIn ou de le dire Ă  vos amis !

Je gĂšre ce site pour vous aider, vous et d'autres comme vous, Ă  trouver des projets sympas et Ă  mettre en pratique des compĂ©tences logicielles. Si cela vous est utile et que vous apprĂ©ciez votre site sans publicitĂ©, veuillez aider Ă  financer ce site en faisant un don ci-dessous ! Si vous ne pouvez pas faire un don maintenant, pensez Ă  nous la prochaine fois.




Analyse des sentiments textuels et comment le faire

L'analyse des sentiments est un exemple de traitement appliquĂ© du langage naturel (TLN). Dans ce contexte, le « sentiment » est presque interchangeable avec la polaritĂ© du texte . La polaritĂ© du texte est une mesure de -1 Ă  1 du sentiment du texte. La dĂ©finition du dictionnaire du sentiment est en fait « son point de vue ou son attitude envers quelque chose », cela peut donc inclure des Ă©motions allant de la tristesse au bonheur en passant par la surprise. Bien qu'il soit possible de prĂ©dire l'Ă©motion, cet article va se concentrer sur le caractĂšre positif ou nĂ©gatif d'un texte. Nous couvrirons les Ă©motions dans un article sur la dĂ©tection des Ă©motions et comment le faire.

Dans cet article, nous couvrirons :

  • Qu'est-ce que le sentiment textuel
  • Sentiment du texte vs polaritĂ© du texte vs analyse du sentiment
  • Comment utiliser l'IA pour obtenir un sentiment de texte
    • Sentiment de texte IA avec spaCy
    • Analyse des sentiments avec NLTK
    • Comment obtenir le sentiment d'un texte avec une API Web
  • Applications de l'analyse des sentiments textuels
    • Titres COVID
  • RĂ©sumĂ© de Comment faire une analyse des sentiments avec l'IA

Qu'est-ce que le sentiment textuel ?

Voyons d'abord ce qu'est le sentiment textuel. Le sentiment du texte est le sentiment gĂ©nĂ©ral d'un texte. C'est la vue d'ensemble fournie par un document texte. Nous utilisons le sentiment du texte pour mesurer la polaritĂ© d'une valeur de -1 Ă  1. Pour nos moyens, le sentiment mesurera si un document texte est gĂ©nĂ©ralement positif ou nĂ©gatif. Une mesure naĂŻve du sentiment textuel prend simplement une moyenne du sentiment de chaque mot.

Nous mesurerons le sentiment total d'un texte comme une combinaison pondĂ©rĂ©e du sentiment de diffĂ©rents mots, expressions et phrases. Vous ĂȘtes libre de dĂ©cider comment vous souhaitez peser chaque mot, expression ou phrase. Dans nos exemples d'implĂ©mentation, nous prendrons des sentiments automatiques avec spaCy et NLTK que vous pourrez extrapoler et ajuster. L'API de texte utilise un mĂ©lange propriĂ©taire de sentiments Ă  partir de mots, d'expressions et de phrases.

Sentiment du texte vs polarité du texte vs analyse du sentiment

Avant d'entrer dans quelques exemples d'implĂ©mentation, obtenons une image plus claire du sentiment. Il y a trois phrases qui sont utilisĂ©es Ă  peu prĂšs de maniĂšre interchangeable dans l'espace PNL par la plupart des gens. Le sentiment de texte, la polaritĂ© du texte et l'analyse des sentiments ne sont distinguĂ©s que lorsque vous avez des cas d'utilisation spĂ©cifiques ou que vous parlez avec des experts en PNL. Prenons les dĂ©finitions.

  1. Sentiment du texte - la vue d'ensemble d'un texte, y compris la positivité, les perspectives et l'émotion
  2. Polarité du texte - une mesure de -1 à 1 de la polarisation (positive ou négative) d'un texte
  3. Analyse des sentiments - le processus de détermination du sentiment d'un document texte

Dans cet article, nous expliquons comment utiliser l'analyse des sentiments pour déterminer la polarité d'un texte.

Comment puis-je utiliser l'IA pour obtenir le sentiment d'un texte ?

Le traitement automatique du langage naturel est un sous-domaine de l'intelligence artificielle. La polaritĂ© est une technique courante pour de nombreux pipelines NLP. Dans cet article, nous expliquerons comment utiliser deux des plus grandes bibliothĂšques Python NLP et une API pour obtenir un sentiment de texte. Nous allons d'abord faire du sentiment textuel avec spaCy , puis NLTK , et enfin avec The Text API .

Sentiment de texte IA avec spaCy

Pour obtenir le sentiment d'un texte avec spaCy, nous devrons installer deux bibliothĂšques et tĂ©lĂ©charger un modĂšle. Nous pouvons le faire en utilisant les lignes ci-dessous dans le terminal.

pip install spacy spacytextblob
python -m spacy download en_core_web_sm

Nous commencerons notre programme de la mĂȘme maniĂšre que nous le faisons toujours, en gĂ©rant les importations. Nous allons importer la spacybibliothĂšque et la SpacyTextBlobclasse depuis le spacytextblobpackage. Ensuite, nous allons charger le modĂšle et ajouter le spacytextblobau pipeline NLP. Nous pouvons utiliser n'importe quel texte, pour cet exemple, nous utiliserons simplement une description textuelle de l'API Text. Ensuite, nous crĂ©erons un document Ă  partir du texte en utilisant le modĂšle NLP. Enfin, nous imprimerons la polaritĂ© globale du texte Ă  partir du modĂšle.

polarité du texte spacy
import spacy from spacytextblob.spacytextblob import SpacyTextBlob nlp = spacy.load("en_core_web_sm") nlp.add_pipe('spacytextblob') text = "The Text API is super easy to use and super useful for anyone who needs to do text processing. It's the best Text Processing web API and allows you to do amazing NLP without having to download or manage any models." doc = nlp(text) print(doc._.polarity)

Analyse des sentiments avec NLTK

Pour suivre cet exemple en utilisant la bibliothĂšque NLTK, nous devrons installer la bibliothĂšque NLTK et tĂ©lĂ©charger les trois de ses packages. Nous pouvons le faire avec les lignes ci-dessous dans le terminal.

pip install nltk
python
>>> import nltk
>>> nltk.download([“averaged_perceptron_tagger”, “punkt”, “vader_lexicon”])

Comme toujours, nous commencerons notre programme par les importations. Nous devrons importer la SentimentIntensityAnalyzerclasse depuis le nltk.sentimentmodule. Ensuite, nous allons initialiser un objet de la SentimentIntensityAnalyzerclasse. Nous utiliserons ici le mĂȘme texte que pour le modĂšle spaCy. Ensuite, nous allons rĂ©cupĂ©rer le polarity_scorestexte de l' SentimentIntensityAnalyzerobjet et imprimer les scores.

Polarité du texte NLTK
from nltk.sentiment import SentimentIntensityAnalyzer sia = SentimentIntensityAnalyzer() text = "The Text API is super easy to use and super useful for anyone who needs to do text processing. It's the best Text Processing web API and allows you to do amazing NLP without having to download or manage any models." scores = sia.polarity_scores(text) print(scores)

Comment obtenir le sentiment d'un texte avec une API NLP

Pour cet exemple, nous devrons installer la requestsbibliothĂšque et obtenir une clĂ© API gratuite auprĂšs de The Text API . Vous pouvez tĂ©lĂ©charger la bibliothĂšque avec la ligne ci-dessous dans le terminal.

pip install requests

Comme toujours, nous allons commencer notre programme avec les importations, nous devons importer la requestsbibliothĂšque pour envoyer des requĂȘtes et la jsonbibliothĂšque pour analyser la rĂ©ponse. J'ai Ă©galement importĂ© la clĂ© API de mon fichier de configuration, mais vous pouvez l'importer depuis l'endroit oĂč vous l'avez enregistrĂ©e ou l'utiliser dans ce fichier. Nous utiliserons exactement le mĂȘme texte qu'avec spaCy et NLTK. 

Nous devons crĂ©er des en-tĂȘtes Ă  envoyer avec la requĂȘte. Les en-tĂȘtes indiqueront au serveur que nous envoyons du contenu JSON et transmettront la clĂ© API. Le corps passera simplement l'objet texte. Nous devons Ă©galement connaĂźtre l'URL du point de terminaison de l'API. Tout ce que nous avons Ă  faire est d'envoyer une requĂȘte POST et d'analyser la rĂ©ponse dans un objet JSON. La polaritĂ© sera la clĂ© de « polaritĂ© du texte » de l'objet renvoyĂ©.

la polarité du texte de l'api du texte
import requests import json from config import apikey text = "The Text API is super easy to use and super useful for anyone who needs to do text processing. It's the best Text Processing web API and allows you to do amazing NLP without having to download or manage any models." headers = { "Content-Type": "application/json", "apikey": apikey } body = { "text": text } url = "https://app.thetextapi.com/text/text_polarity" response = requests.post(url, headers=headers, json=body) polarity = json.loads(response.text)["text polarity"] print(polarity)

Applications de l'analyse des sentiments textuels

L'analyse des sentiments pour le texte peut ĂȘtre appliquĂ©e de plusieurs façons. Nous pouvons l'utiliser pour avoir une idĂ©e de ce que les gens disent vraiment dans les avis, de ce que les clients pensent de notre produit ou mĂȘme de ce que les employĂ©s pensent de l'entreprise. Nous pouvons Ă©galement l'utiliser pour analyser les nouvelles et voir si elles sont positives ou nĂ©gatives. Dans cette section, nous montrerons un exemple d'utilisation de l'analyse des sentiments textuels pour analyser les titres COVID au fil du temps.

Polarité du sentiment textuel des titres COVID

Une application de l'analyse des sentiments textuels consiste Ă  analyser les actualitĂ©s. Comme cela fait environ deux ans que la pandĂ©mie de COVID a commencĂ©, l'analyse des gros titres de COVID pourrait ĂȘtre intĂ©ressante. J'ai dĂ©cidĂ© de faire une analyse des gros titres du NY Times sur le COVID au cours des deux derniĂšres annĂ©es. Qu'est-ce que j'ai appris ? Qu'ils Ă©taient beaucoup plus nĂ©gatifs Ă  propos de COVID la premiĂšre annĂ©e qu'ils ne l'ont Ă©tĂ© cette annĂ©e.

Sentiment textuel des titres d'articles COVID jusqu'à présent
Polarité du texte des titres d'articles COVID jusqu'à présent

Pour un didacticiel complet, consultez Utilisation de l'IA pour analyser les titres COVID .

Résumé de Comment faire une analyse des sentiments avec l'IA

Dans cet article, nous avons dĂ©couvert le sentiment textuel, l'analyse des sentiments et la polaritĂ© du texte. Nous avons appris que ces termes sont pour la plupart interchangeables mais prĂ©sentent des diffĂ©rences nuancĂ©es. Ensuite, nous avons vu comment utiliser l'IA pour obtenir le sentiment d'un texte. Nous avons vu comment l'implĂ©menter de trois maniĂšres diffĂ©rentes, avec spaCy, NLTK et The Text API. Enfin, nous avons vu un exemple de la façon dont nous pouvons appliquer l'analyse des sentiments textuels.

Apprendre encore plus

Pour en savoir plus, n'hĂ©sitez pas Ă  me contacter @yujian_tang sur Twitter, connectez-vous avec moi sur LinkedIn et rejoignez notre Discord . N'oubliez pas de suivre le blog pour rester Ă  jour avec des projets Python sympas et des moyens d'amĂ©liorer vos compĂ©tences en logiciel et Python ! Si vous avez aimĂ© cet article, merci de le tweeter, de le partager sur LinkedIn ou de le dire Ă  vos amis !

Je gĂšre ce site pour vous aider, vous et d'autres comme vous, Ă  trouver des projets sympas et Ă  mettre en pratique des compĂ©tences logicielles. Si cela vous est utile et que vous apprĂ©ciez votre site sans publicitĂ©, veuillez aider Ă  financer ce site en faisant un don ci-dessous ! Si vous ne pouvez pas faire un don maintenant, pensez Ă  nous la prochaine fois.


Commentaires

Posts les plus consultés de ce blog

TOP outils de rĂ©fĂ©rencement gratuits qui valent la peine d'ĂȘtre utilisĂ©s en 2023

Les outils de rĂ©fĂ©rencement gratuits qui valent vraiment la peine d'ĂȘtre utilisĂ©s

Changement de domaine en 2023 : tout ce que vous devez savoir

Chatbot Dialogflow : Tutoriel NoCode NLP pour les spĂ©cialistes du marketing | Landbot

Revenu passif : idées pour gagner de l'argent (en dormant)

Meilleurs outils de rĂ©fĂ©rencement 🛠 organisĂ©e par Saijo George

La toolbox du growth hacker 💎 - Outils - Growthhacking.fr | CommunautĂ© française de growth hacking

Comment signer avec une maison de disques ? Voici notre guide ultime pour 2024

100 outils pour lancer sa startup sans argent (mais pas sans talent)