Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Python menyambung ke antara muka Alibaba Cloud untuk merealisasikan fungsi transkod audio masa nyata

Python menyambung ke antara muka Alibaba Cloud untuk merealisasikan fungsi transkod audio masa nyata

王林
王林asal
2023-07-05 11:13:091174semak imbas

Python menyambung ke antara muka Alibaba Cloud untuk merealisasikan fungsi transkripsi audio masa nyata

Alibaba Cloud menyediakan pelbagai perkhidmatan kecerdasan buatan, termasuk fungsi pengecaman pertuturan. Dengan bantuan antara muka API Alibaba Cloud, kami boleh menggunakan Python untuk melaksanakan fungsi transkripsi audio masa nyata. Artikel ini akan memperkenalkan cara menyambung ke antara muka Alibaba Cloud, menggunakan Python untuk transkripsi audio masa nyata dan memberikan contoh kod.

Langkah 1: Mohon Alibaba Cloud AccessKey

Pertama, kita perlu mendaftar akaun di tapak web rasmi Alibaba Cloud dan mencipta AccessKey untuk menyambung ke antara muka API Awan Alibaba. Pada halaman konsol Awan Alibaba, pilih "Pengurusan AccessKey" untuk memasuki halaman pengurusan AccessKey. Klik butang "Buat AccessKey" untuk mendapatkan AccessKey dan AccessKeySecret.

Langkah 2: Pasang Alibaba Cloud SDK

Seterusnya, kita perlu memasang Alibaba Cloud SDK untuk memanggil antara muka API pengecaman pertuturan Alibaba Cloud. Buka baris arahan dan laksanakan arahan berikut untuk memasang SDK:

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

Langkah 3: Panggil API pengecaman pertuturan masa nyata Alibaba Cloud

Dalam kod, kami perlu memperkenalkan perpustakaan Alibaba Cloud SDK yang berkaitan dan tetapkan AccessKey dan 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)

Seterusnya, kami perlu menetapkan parameter dan data audio untuk pengecaman transkripsi, dan memanggil antara muka API Awan Alibaba untuk transkripsi pertuturan masa nyata:

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

Dalam kod di atas, kami menggunakan base64 untuk mengekod data audio, dan bina Permintaan panggilan antara muka API, termasuk accessKeyId, data audio dan parameter transkripsi lain. Kami menghantar permintaan dengan memanggil kaedah do_action() AcsClient dan mendapatkan ID tugas pengecaman pertuturan masa nyata.

Langkah 4: Dapatkan hasil transkripsi pertuturan masa nyata

Selepas menyelesaikan tugas pengecaman pertuturan masa nyata, kami perlu mendapatkan hasil transkripsi. Alibaba Cloud menyediakan antara muka API untuk menanyakan hasil tugasan Kami boleh menggunakan antara muka ini untuk membuat tinjauan untuk mendapatkan hasil tugasan.

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

Dalam kod di atas, kami menggunakan tinjauan pendapat untuk mendapatkan hasil tugasan sehingga tugasan selesai atau tamat masa. Jika tugasan berjaya diselesaikan, kita boleh mendapatkan URL hasil transkripsi dan menggunakan perpustakaan urllib untuk mendapatkan hasilnya.

Langkah 5: Jalankan kod transkod audio masa nyata

Dalam fungsi utama, kita boleh merangkum langkah di atas ke dalam fungsi dan menghantar data audio untuk transkripsi. Kami boleh membaca data audio daripada fail dan menyimpan hasil transkripsi ke fail.

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

Di atas ialah contoh kod lengkap fungsi transkripsi audio masa nyata. Kami boleh menyediakan fail audio untuk ditranskripsi, dan selepas menjalankan kod, kami boleh mendapatkan hasil transkripsi masa nyata audio dan menyimpannya ke fail yang ditentukan.

Ringkasan

Artikel ini memperkenalkan cara menggunakan Python untuk menyambung ke antara muka Alibaba Cloud untuk melaksanakan fungsi transkripsi audio masa nyata. Dengan memohon Alibaba Cloud AccessKey, memasang Alibaba Cloud SDK dan memanggil antara muka Alibaba Cloud API, kami boleh melaksanakan fungsi transkripsi audio masa nyata dalam Python dengan mudah. Apabila menggunakan API Awan Alibaba, kami perlu memberi perhatian kepada tetapan parameter dan pertanyaan hasil untuk mendapatkan hasil transkripsi audio yang tepat.

Lampiran

Contoh kod penuh boleh didapati di GitHub: [https://github.com/example/transcribe-python](https://github.com/example/transcribe-python)

Atas ialah kandungan terperinci Python menyambung ke antara muka Alibaba Cloud untuk merealisasikan fungsi transkod audio masa nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn