Maison  >  Article  >  développement back-end  >  Python se connecte à l'interface Alibaba Cloud pour implémenter la fonction de transcodage audio en temps réel

Python se connecte à l'interface Alibaba Cloud pour implémenter la fonction de transcodage audio en temps réel

王林
王林original
2023-07-05 11:13:091174parcourir

Python se connecte à l'interface Alibaba Cloud pour mettre en œuvre une fonction de transcription audio en temps réel

Alibaba Cloud fournit une multitude de services d'intelligence artificielle, notamment des fonctions de reconnaissance vocale. Avec l'aide de l'interface API d'Alibaba Cloud, nous pouvons utiliser Python pour implémenter la fonction de transcription audio en temps réel. Cet article expliquera comment se connecter à l'interface Alibaba Cloud, utiliser Python pour la transcription audio en temps réel et fournira des exemples de code.

Étape 1 : demander une clé d'accès Alibaba Cloud

Tout d'abord, nous devons créer un compte sur le site officiel d'Alibaba Cloud et créer une clé d'accès pour nous connecter à l'interface API Alibaba Cloud. Sur la page de la console Alibaba Cloud, sélectionnez « AccessKey Management » pour accéder à la page de gestion AccessKey. Cliquez sur le bouton « Créer une clé d'accès » pour obtenir AccessKey et AccessKeySecret.

Étape 2 : Installez le SDK Alibaba Cloud

Ensuite, nous devons installer le SDK Alibaba Cloud pour appeler l'interface API de reconnaissance vocale d'Alibaba Cloud. Ouvrez la ligne de commande et exécutez la commande suivante pour installer le SDK :

pip install aliyun-python-sdk-core
pip install aliyunsdkcore

Étape 3 : Appelez l'API de reconnaissance vocale en temps réel d'Alibaba Cloud

Dans le code, nous devons introduire les bibliothèques pertinentes du SDK Alibaba Cloud et définir AccessKey et AccessKeySecret :

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.profile import region_provider

accessKeyId = "your_access_key"
secret = "your_access_secret"

regionId = "cn-hangzhou"
region_provider.add_endpoint('asr', regionId, 'asr.aliyuncs.com')

client = AcsClient(accessKeyId, secret, regionId)

Ensuite, nous devons définir les paramètres et les données audio pour la reconnaissance de la transcription, et appeler l'interface API Alibaba Cloud pour la transcription vocale en temps réel :

import base64
import json

def transcribe_audio(audio_data):
    request = CommonRequest()
    request.set_domain('asr.cn-hangzhou.aliyuncs.com')
    request.set_version('2019-08-01')
    request.set_product('nls-filetrans')
    request.set_action_name('SubmitTask')

    audio_base64 = base64.b64encode(audio_data).decode('utf-8')
    task = {
        "app_key": accessKeyId,
        "file_link": "",
        "content": audio_base64,
        "enable_words": False,
        "enable_syllable": False,
        "enable_format": False,
        "enable_punctuation": False,
        "result_url": "",
        "result_format": "json"
    }
    request.add_body_params('task', json.dumps(task))

    response = client.do_action(request)
    result = json.loads(response.decode('utf-8'))
    taskId = result["data"]["taskId"]
    return taskId

Dans le code ci-dessus, nous utilisons base64 pour encoder le données audio et construisez la demande d'appel d'interface API, y compris accessKeyId, les données audio et d'autres paramètres de transcription. Nous envoyons une requête en appelant la méthode do_action() d'AcsClient et obtenons l'ID de tâche de reconnaissance vocale en temps réel.

Étape 4 : Obtenez les résultats de la transcription vocale en temps réel

Après avoir terminé la tâche de reconnaissance vocale en temps réel, nous devons obtenir les résultats de la transcription. Alibaba Cloud fournit une interface API pour interroger les résultats des tâches. Nous pouvons utiliser cette interface pour interroger afin d'obtenir les résultats des tâches.

def get_transcribe_result(taskId):
    request = CommonRequest()
    request.set_domain('asr.cn-hangzhou.aliyuncs.com')
    request.set_version('2019-08-01')
    request.set_product('nls-filetrans')
    request.set_action_name('GetTaskResult')

    request.add_query_param('taskId', taskId)

    response = client.do_action(request)
    result = json.loads(response.decode('utf-8'))
    if result["code"] == 200000:
        status = result["data"]["taskStatus"]
        if status == 'Success':
            result_url = result["data"]["result"]["resultUrl"]
            response = urllib.request.urlopen(result_url)
            transcript = response.read().decode('utf-8')
            return transcript
    return None

Dans le code ci-dessus, nous utilisons l'interrogation pour obtenir les résultats de la tâche jusqu'à ce que la tâche soit terminée ou expire. Si la tâche se termine avec succès, nous pouvons obtenir l'URL du résultat transcrit et utiliser la bibliothèque urllib pour obtenir le résultat.

Étape 5 : Exécuter le code de transcodage audio en temps réel

Dans la fonction principale, nous pouvons encapsuler les étapes ci-dessus dans une fonction et transmettre les données audio pour la transcription. Nous pouvons lire les données audio du fichier et enregistrer les résultats de la transcription dans le fichier.

def main():
    audio_path = "audio.wav"
    audio_data = read_audio_file(audio_path)

    taskId = transcribe_audio(audio_data)
    print("Task ID:", taskId)

    transcript = None
    while transcript is None:
        transcript = get_transcribe_result(taskId)
        time.sleep(2)

    transcript_path = "transcript.txt"
    with open(transcript_path, "w") as f:
        f.write(transcript)
    print("Transcript saved to:", transcript_path)

if __name__ == "__main__":
    main()

Ce qui précède est l'exemple de code complet de la fonction de transcription audio en temps réel. Nous pouvons préparer les fichiers audio à transcrire, et après avoir exécuté le code, nous pouvons obtenir les résultats de transcription en temps réel de l'audio et les enregistrer dans le fichier spécifié.

Résumé

Cet article explique comment utiliser Python pour se connecter à l'interface Alibaba Cloud afin d'implémenter la fonction de transcription audio en temps réel. En demandant l'Alibaba Cloud AccessKey, en installant le SDK Alibaba Cloud et en appelant l'interface API Alibaba Cloud, nous pouvons facilement implémenter la fonction de transcription audio en temps réel dans Python. Lors de l'utilisation de l'API Alibaba Cloud, nous devons prêter attention aux paramètres et à la requête de résultats pour obtenir des résultats de transcription audio précis.

Annexe

Un exemple de code complet peut être trouvé sur GitHub : [https://github.com/example/transcribe-python](https://github.com/example/transcribe-python)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn