web-dev-qa-db-fra.com

Comment utiliser l'API Google de reconnaissance vocale en Python?

Le débordement de la pile n'est peut-être pas le meilleur endroit pour poser cette question, mais j'ai besoin d'aide. J'ai un fichier mp3 et je veux utiliser la reconnaissance vocale de google pour extraire le texte de ce fichier. Toutes les idées où je peux trouver de la documentation ou des exemples seront appréciées.

15
Vivek Anand

Jetez un oeil à Google Cloud Speech API qui permet aux développeurs de convertir l'audio en texte [...] L'API reconnaît plus de 80 langues et variantes [...] Vous pouvez créer un compte gratuit pour obtenir un quantité limitée de demande d'API.

COMMENT:

Vous devez d'abord installer gcloud python & google-api-python-client module avec:

pip install --upgrade gcloud
pip install --upgrade google-api-python-client

Ensuite, dans la console Cloud Platform, accédez à la page Projets et sélectionnez ou créez un nouveau projet. Après avoir besoin d'activer la facturation pour votre projet, alors activez l'API Cloud Speech .

Après avoir activé l'API Google Cloud Speech, cliquez sur le bouton Accéder aux informations d'identification pour configurer vos informations d'identification API Cloud Speech

Voir Configurer un compte de service pour plus d'informations sur la façon d'autoriser le service API Cloud Speech à partir de votre code

Vous devez obtenir à la fois un fichier de clé de compte de service (en JSON) et une variable d'environnement GOOGLE_APPLICATION_CREDENTIALS qui vous permettra de vous authentifier auprès de l'API Speech

Une fois tout fait, téléchargez le fichier audio brut de google et aussi le speech-discovery_google_rest_v1.json de google

Modifiez le fichier JSON téléchargé précédent pour définir votre clé d'informations d'identification, puis assurez-vous que vous avez défini la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS sur le chemin complet du fichier .json avec:

export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service_account_file.json

aussi

Assurez-vous d'avoir défini votre variable d'environnement GCLOUD_PROJECT sur l'ID de votre projet Google Cloud avec:

export GCLOUD_PROJECT=your-project-id

en supposant que tout est fait , vous pouvez créer un tutorial.py fichier contenant:

import argparse
import base64
import json

from googleapiclient import discovery
import httplib2
from oauth2client.client import GoogleCredentials


DISCOVERY_URL = ('https://{api}.googleapis.com/$discovery/rest?'
                 'version={apiVersion}')


def get_speech_service():
    credentials = GoogleCredentials.get_application_default().create_scoped(
        ['https://www.googleapis.com/auth/cloud-platform'])
    http = httplib2.Http()
    credentials.authorize(http)

    return discovery.build(
        'speech', 'v1beta1', http=http, discoveryServiceUrl=DISCOVERY_URL)


def main(speech_file):
    """Transcribe the given audio file.

    Args:
        speech_file: the name of the audio file.
    """
    with open(speech_file, 'rb') as speech:
        speech_content = base64.b64encode(speech.read())

    service = get_speech_service()
    service_request = service.speech().syncrecognize(
        body={
            'config': {
                'encoding': 'LINEAR16',  # raw 16-bit signed LE samples
                'sampleRate': 16000,  # 16 khz
                'languageCode': 'en-US',  # a BCP-47 language tag
            },
            'audio': {
                'content': speech_content.decode('UTF-8')
                }
            })
    response = service_request.execute()
    print(json.dumps(response))

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument(
        'speech_file', help='Full path of audio file to be recognized')
    args = parser.parse_args()
    main(args.speech_file)

Exécutez ensuite:

python tutorial.py audio.raw
41
A STEFANI