Tutorial: Python menyambung ke antara muka Huawei Cloud untuk melaksanakan fungsi sintesis pertuturan

王林
Lepaskan: 2023-07-06 10:58:36
asal
1527 orang telah melayarinya

Tutorial: Python menyambung ke antara muka Awan Huawei untuk melaksanakan fungsi sintesis pertuturan

Pengenalan:
Dalam era perkembangan pesat teknologi komputer moden, interaksi manusia-komputer telah menjadi bidang yang sangat penting. Sintesis pertuturan ialah salah satu teknologi utama, yang boleh menukar teks kepada bunyi untuk memberikan pengguna pengalaman interaktif yang lebih semula jadi. Tutorial ini akan memperkenalkan cara menggunakan bahasa Python untuk menyambung ke antara muka Huawei Cloud untuk melaksanakan fungsi sintesis pertuturan.

Langkah 1: Daftar akaun Huawei Cloud dan buat projek

Mula-mula, kita perlu mendaftar akaun Huawei Cloud dan mencipta projek pada konsol pengurusan Huawei Cloud. Dalam pengurusan projek, kita perlu membuka perkhidmatan "sintesis pertuturan" dan merekodkan kunci akses dan maklumat wilayah projek, yang akan digunakan dalam kod berikutnya.

Langkah 2: Pasang Python SDK

Huawei Cloud menyediakan python-sdk, yang boleh memanggil antara muka perkhidmatan awan dengan mudah. Kita boleh menggunakan arahan pip untuk memasang SDK:

pip install huaweicloud-sdk
Salin selepas log masuk

Langkah 3: Tulis kod Python

Pertama, kita perlu mengimport modul yang berkaitan dalam SDK:

from huaweicloud_sdk.asr.v1 import asr_client
from huaweicloud_sdk.asr.v1.region.asr_region import AsrRegion
from huaweicloud_sdk.core.auth.credentials import BasicCredentials
from huaweicloud_sdk.core.auth import auth
from huaweicloud_sdk.core.http.http_config import HttpConfig
Salin selepas log masuk

Seterusnya, kita perlu menetapkan maklumat dan perkhidmatan pengesahan pengguna maklumat kawasan:

credentials = BasicCredentials('<Access Key ID>', '<Secret Access Key>', '<Security Token>')
config = HttpConfig.get_default_config()
config.region = AsrRegion.<Region>
auth = auth(dict(credentials=credentials, **config.__dict__))
Salin selepas log masuk

Ganti <ID Kunci Akses>, <Kunci Akses Rahsia> dan <Token Keselamatan> dengan yang sebelumnya yang dalam Pengurusan Awan Huawei Akses maklumat utama yang diperoleh pada konsol dan gantikan <Wilayah> dengan rantau perkhidmatan sebenar yang digunakan. <Access Key ID><Secret Access Key><Security Token>替换为前面在华为云管理控制台上获取到的访问密钥信息,并将<Region>替换为实际使用的服务区域。

然后,我们可以创建语音合成客户端:

client = asr_client.AsrClient.asr_client_factory(
    endpoint='<Endpoint>', credentials=credentials, security=None)
client.client_config.region = AsrRegion.<Region>
Salin selepas log masuk

<Endpoint>替换为实际使用的服务接入点。

接下来,我们可以准备要进行语音合成的文本:

text = '''
欢迎来到华为云语音合成教程。华为云提供了强大的云服务,帮助用户实现各种语音合成需求。本教程将通过Python连接华为云接口,实现语音合成功能。
'''
Salin selepas log masuk

创建合成任务:

response = client.create_task(text, {'voice_name': 'xiaoyan'})
task_id = response.result.task_id
Salin selepas log masuk

其中,'xiaoyan'

Kami kemudiannya boleh mencipta klien sintesis pertuturan:

response = client.get_task(task_id)
status = response.result.status
while status == 'starting' or status == 'running':
    response = client.get_task(task_id)
    status = response.result.status
synthesis_result = response.result.synthesis_result
Salin selepas log masuk

Ganti <Endpoint> dengan pusat akses perkhidmatan sebenar yang digunakan.

Seterusnya, kita boleh menyediakan teks untuk sintesis pertuturan:

with open('output.mp3', 'wb') as f:
    f.write(synthesis_result)
Salin selepas log masuk

Buat tugasan sintesis:

print('合成结果:', synthesis_result)
Salin selepas log masuk

Antaranya, 'xiaoyan' ialah gaya sintesis pertuturan yang disokong oleh Huawei Cloud Anda juga boleh Anda boleh memilih gaya lain mengikut keperluan sebenar.


Soal status tugas sintesis:

from huaweicloud_sdk.asr.v1 import asr_client
from huaweicloud_sdk.asr.v1.region.asr_region import AsrRegion
from huaweicloud_sdk.core.auth.credentials import BasicCredentials
from huaweicloud_sdk.core.auth import auth
from huaweicloud_sdk.core.http.http_config import HttpConfig

credentials = BasicCredentials('<Access Key ID>', '<Secret Access Key>', '<Security Token>')
config = HttpConfig.get_default_config()
config.region = AsrRegion.<Region>
auth = auth(dict(credentials=credentials, **config.__dict__))

client = asr_client.AsrClient.asr_client_factory(
    endpoint='<Endpoint>', credentials=credentials, security=None)
client.client_config.region = AsrRegion.<Region>

text = '''
欢迎来到华为云语音合成教程。华为云提供了强大的云服务,帮助用户实现各种语音合成需求。本教程将通过Python连接华为云接口,实现语音合成功能。
'''

response = client.create_task(text, {'voice_name': 'xiaoyan'})
task_id = response.result.task_id

response = client.get_task(task_id)
status = response.result.status
while status == 'starting' or status == 'running':
    response = client.get_task(task_id)
    status = response.result.status
synthesis_result = response.result.synthesis_result

with open('output.mp3', 'wb') as f:
    f.write(synthesis_result)

print('合成结果:', synthesis_result)
Salin selepas log masuk
🎜Seterusnya, kita boleh menyimpan hasil sintesis sebagai fail audio:🎜rrreee🎜Akhir sekali, kita boleh mencetak hasil sintesis dan memainkan fail audio:🎜rrreee🎜Langkah 4: Contoh kod lengkap🎜 rrreee 🎜Ringkasan: 🎜Melalui langkah di atas, kita boleh menggunakan Python untuk menyambung ke antara muka Awan Huawei untuk melaksanakan fungsi sintesis pertuturan. Saya harap tutorial ini akan membantu semua orang dan boleh digunakan untuk menggunakan fungsi sintesis pertuturan dalam pembangunan sebenar untuk meningkatkan pengalaman interaksi pengguna. 🎜

Atas ialah kandungan terperinci Tutorial: Python menyambung ke antara muka Huawei Cloud untuk melaksanakan fungsi sintesis pertuturan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan