Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ajar anda cara menggunakan Python untuk menyambung ke antara muka Huawei Cloud untuk melaksanakan fungsi transkripsi dan sintesis audio

Ajar anda cara menggunakan Python untuk menyambung ke antara muka Huawei Cloud untuk melaksanakan fungsi transkripsi dan sintesis audio

WBOY
WBOYasal
2023-07-06 14:13:541544semak imbas

Ajar anda cara menggunakan Python untuk menyambung ke antara muka Huawei Cloud untuk melaksanakan fungsi transkripsi dan sintesis audio

Pengenalan:
Dengan perkembangan teknologi kecerdasan buatan, sintesis pertuturan dan pengecaman pertuturan telah menjadi fungsi penting dalam banyak bidang aplikasi. Sebagai pembangun, kami boleh menggunakan bahasa Python untuk menyambung ke antara muka Awan Huawei untuk melaksanakan fungsi transkripsi dan sintesis audio. Artikel ini akan memperkenalkan cara menggunakan Python untuk menyambung ke antara muka Huawei Cloud untuk merealisasikan fungsi transkripsi dan sintesis pertuturan bagi fail audio.

1 Daftar akaun Huawei Cloud
Untuk menggunakan perkhidmatan suara Huawei Cloud, anda perlu mendaftar akaun di Huawei Cloud terlebih dahulu dan membuat contoh perkhidmatan pengecaman pertuturan dan sintesis.

2. Pasang perpustakaan bergantung
Menyambung ke Huawei Cloud dalam Python memerlukan penggunaan Python SDK Pertama kita perlu memasang perpustakaan yang sepadan:

pip install huaweicloud-sdkcore
pip install huaweicloud-sdkasr
pip install huaweicloud-sdktts
pip install pydub

huaweicloud-sdkcore ialah pustaka teras Huawei Cloud's Python SDK, manakala huaweicloud-sdkas. dan huaweicloud-sdktts Ia ialah SDK Python untuk pengecaman pertuturan dan sintesis pertuturan.

pydub ialah perpustakaan Python untuk memproses fail audio, kami akan menggunakannya untuk memproses format fail audio.

3. Transkripsi Suara
Pertama, kami perlu memuat naik fail audio untuk ditranskripsikan ke perkhidmatan OBS Storan Objek Awan Huawei. Kemudian sambung ke perkhidmatan suara Huawei Cloud melalui Python SDK dan panggil antara muka pengecaman pertuturan untuk transkripsi.

Berikut ialah contoh kod untuk melaksanakan fungsi menyalin fail audio ke dalam teks:

from huaweicloud-sdkcore.auth.credentials import GlobalCredentials
from huaweicloud-sdkasr.v1.asr_client import AsrClient

ak = 'your access key'
sk = 'your secret key'
region = 'your region'
endpoint = 'https://asr.myhuaweicloud.com'

def recognize(file_path):
    creds = GlobalCredentials().with_aksk(ak, sk)
    client = AsrClient.new_builder().with_credentials(creds).with_endpoint(endpoint).build()

    with open(file_path, 'rb') as f:
        file_data = f.read()

    try:
        resp = client.recognize(file_data)
        result = resp.result
        return result
    except Exception as e:
        print("Recognize failed: ", e)

Dalam contoh ini, pertama sekali kita perlu menetapkan Kunci Akses dan Kunci Rahsia yang kami cipta pada Huawei Cloud, serta wilayah tempat ia terletak.

Kemudian baca dan tukar fail audio kepada aliran bait melalui kaedah pengecaman AsrClient, dan hantarkannya ke antara muka pengecaman pertuturan Huawei Cloud. Selepas antara muka berjaya dipanggil, hasil transkripsi audio akan dikembalikan.

4. Sintesis pertuturan
Sekarang mari kita laksanakan fungsi sintesis pertuturan. Begitu juga, kita perlu memuat naik teks untuk disintesis ke perkhidmatan OBS Penyimpanan Objek Awan Huawei. Kemudian sambung ke perkhidmatan suara Huawei Cloud melalui Python SDK dan panggil antara muka sintesis pertuturan untuk sintesis.

from huaweicloud-sdkcore.auth.credentials import GlobalCredentials
from huaweicloud-sdktts.v1.tts_client import TtsClient

ak = 'your access key'
sk = 'your secret key'
region = 'your region'
endpoint = 'https://tts.myhuaweicloud.com'

def text_to_speech(text, file_path):
    creds = GlobalCredentials().with_aksk(ak, sk)
    client = TtsClient.new_builder().with_credentials(creds).with_endpoint(endpoint).build()

    try:
        resp = client.create_notify(body= {
            "text": text,
            "voice_name": "xiaoyan",
            "sample_rate": 16,
            "volume": 0,
            "speed": 0,
            "pitch": 0,
            "format": "mp3"
        })
        body = resp.result

        download_link = body['download_link']
        urllib.request.urlretrieve(download_link, file_path)
        print('Speech synthesis completed!')
    except Exception as e:
        print("Text to speech failed: ", e)

Dalam contoh ini, kita juga perlu menetapkan Kunci Akses dan Kunci Rahsia yang dibuat pada Huawei Cloud, serta rantau ini.

Kemudian hantar permintaan sintetik melalui kaedah create_notify TtsClient. Kami perlu menyediakan maklumat yang berkaitan seperti teks untuk disintesis, gaya bunyi, parameter audio, dsb. Selepas antara muka berjaya dipanggil, Huawei Cloud akan menjana fail audio yang disintesis dan menyediakan pautan muat turun.

Kita boleh menggunakan kaedah urlretrieve dalam perpustakaan urllib untuk memuat turun fail audio secara setempat dan menyimpannya dalam format mp3.

Kesimpulan:
Melalui langkah di atas, kita boleh melihat cara menggunakan Python untuk menyambung ke antara muka Awan Huawei untuk melaksanakan fungsi transkripsi dan sintesis audio. Menggunakan perkhidmatan suara Huawei Cloud yang berkuasa, kami boleh melaksanakan pengecaman pertuturan dan fungsi sintesis pertuturan dengan cepat dalam pelbagai senario aplikasi.

Perlu diingatkan bahawa artikel ini hanyalah kod sampel, dan beberapa parameter perlu ditetapkan mengikut situasi sebenar anda. Dalam aplikasi sebenar, fungsi boleh dioptimumkan dan dikembangkan mengikut keperluan anda sendiri. Saya harap artikel ini akan membantu anda Selamat datang untuk melawati tapak web rasmi Huawei Cloud untuk mengetahui lebih lanjut tentang perkhidmatan suara.

Atas ialah kandungan terperinci Ajar anda cara menggunakan Python untuk menyambung ke antara muka Huawei Cloud untuk melaksanakan fungsi transkripsi dan sintesis audio. 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