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!