Klien teks-ke-speech sederhana untuk Azure TTS API. ?
Mulai dari versi 6.0.0, aspeak secara default menggunakan API RESTful Azure TTS. Jika Anda ingin menggunakan API WebSocket, Anda dapat menentukan --mode websocket saat memanggil aspeak atau Set mode = "websocket" di bagian auth profil Anda.
Mulai dari versi 4.0.0, aspeak ditulis ulang dalam karat. Versi Python lama tersedia di cabang python .
Anda dapat mendaftar untuk akun Azure dan kemudian memilih paket pembayaran sesuai kebutuhan (atau tetap pada tingkat gratis). Tingkat gratis mencakup kuota 0,5 juta karakter per bulan, gratis.
Silakan merujuk ke bagian otentikasi untuk mempelajari cara mengatur otentikasi untuk Aspeak.
Unduh rilis terbaru dari sini.
Setelah mengunduh, ekstrak arsip dan Anda akan mendapatkan file yang dapat dieksekusi biner.
Anda dapat meletakkannya di direktori yang ada di variabel lingkungan PATH Anda sehingga Anda dapat menjalankannya dari mana saja.
Dari v4.1.0, Anda dapat menginstal aspeak-bin dari AUR.
Menginstal dari PYPI juga akan menginstal pengikatan Python aspeak untuk Anda. Periksa Penggunaan Perpustakaan#Python untuk informasi lebih lanjut tentang penggunaan ikatan Python.
pip install -U aspeak==6.0.0Sekarang roda prebuilt hanya tersedia untuk arsitektur x86_64. Karena beberapa masalah teknis, saya belum mengunggah distribusi sumber ke PYPI. Jadi untuk membangun roda dari sumber, Anda harus mengikuti instruksi di instal dari sumber.
Karena banyak masalah kompatibilitas, roda untuk Linux tidak tersedia di PYPI. (Tapi Anda masih bisa membangunnya dari sumber.)
Cara termudah untuk menginstal aspeak dari sumber adalah dengan menggunakan kargo:
cargo install aspeak -F binary Atau, Anda juga dapat menginstal aspeak dari AUR.
Untuk membangun roda python, Anda harus memasang maturin terlebih dahulu:
pip install maturin Setelah mengkloning repositori dan cd ke dalam direktori, Anda dapat membangun roda dengan menjalankan:
maturin build --release --strip -F python --bindings pyo3 --interpreter python --manifest-path Cargo.toml --out dist-pyo3
maturin build --release --strip --bindings bin -F binary --interpreter python --manifest-path Cargo.toml --out dist-bin
bash merge-wheel.bash Jika semuanya berjalan dengan baik, Anda akan mendapatkan file roda di direktori dist .
Jalankan aspeak help untuk melihat pesan bantuan.
Jalankan aspeak help <subcommand> untuk melihat pesan bantuan dari sub -perintah.
Opsi otentikasi harus ditempatkan di hadapan sub -perintah mana pun.
Misalnya, untuk memanfaatkan kunci berlangganan Anda dan titik akhir resmi yang ditunjuk oleh suatu wilayah, jalankan perintah berikut:
$ aspeak --region < YOUR_REGION > --key < YOUR_SUBSCRIPTION_KEY > text " Hello World " Jika Anda menggunakan titik akhir khusus, Anda dapat menggunakan opsi --endpoint alih -alih --region .
Untuk menghindari pengulangan, Anda dapat menyimpan detail otentikasi Anda di profil aspeak Anda. Baca bagian berikut untuk detail lebih lanjut.
Dari v5.2.0, Anda juga dapat mengatur rahasia otentikasi melalui variabel lingkungan berikut:
ASPEAK_AUTH_KEY untuk otentikasi menggunakan kunci berlanggananASPEAK_AUTH_TOKEN untuk otentikasi menggunakan token otorisasiDari v4.3.0, Anda dapat membiarkan Aspeak menggunakan server proxy untuk terhubung ke titik akhir. Untuk saat ini, hanya proxy HTTP dan Socks5 yang didukung (belum ada dukungan HTTPS). Misalnya:
$ aspeak --proxy http://your_proxy_server:port text " Hello World "
$ aspeak --proxy socks5://your_proxy_server:port text " Hello World " Aspeak juga menghormati variabel lingkungan HTTP_PROXY (atau http_proxy ).
Aspeak V4 memperkenalkan konsep profil. Profil adalah file konfigurasi di mana Anda dapat menentukan nilai default untuk opsi baris perintah.
Jalankan perintah berikut untuk membuat profil default Anda:
$ aspeak config initUntuk mengedit profil, jalankan:
$ aspeak config editJika Anda kesulitan menjalankan perintah di atas, Anda dapat mengedit profil secara manual:
Tinju mendapatkan jalur profil dengan menjalankan:
$ aspeak config whereKemudian edit file dengan editor teks favorit Anda.
Profilnya adalah file TOML. Profil default terlihat seperti ini:
Periksa komentar di file konfigurasi untuk informasi lebih lanjut tentang opsi yang tersedia.
# Profile for aspeak
# GitHub: https://github.com/kxxt/aspeak
# Output verbosity
# 0 - Default
# 1 - Verbose
# The following output verbosity levels are only supported on debug build
# 2 - Debug
# >=3 - Trace
verbosity = 0
#
# Authentication configuration
#
[ auth ]
# Endpoint for TTS
# endpoint = "wss://eastus.tts.speech.microsoft.com/cognitiveservices/websocket/v1"
# Alternatively, you can specify the region if you are using official endpoints
# region = "eastus"
# Synthesizer Mode, "rest" or "websocket"
# mode = "rest"
# Azure Subscription Key
# key = "YOUR_KEY"
# Authentication Token
# token = "Your Authentication Token"
# Extra http headers (for experts)
# headers = [["X-My-Header", "My-Value"], ["X-My-Header2", "My-Value2"]]
# Proxy
# proxy = "socks5://127.0.0.1:7890"
# Voice list API url
# voice_list_api = "Custom voice list API url"
#
# Configuration for text subcommand
#
[ text ]
# Voice to use. Note that it takes precedence over the locale
# voice = "en-US-JennyNeural"
# Locale to use
locale = " en-US "
# Rate
# rate = 0
# Pitch
# pitch = 0
# Role
# role = "Boy"
# Style, "general" by default
# style = "general"
# Style degree, a floating-point number between 0.1 and 2.0
# style_degree = 1.0
#
# Output Configuration
#
[ output ]
# Container Format, Only wav/mp3/ogg/webm is supported.
container = " wav "
# Audio Quality. Run `aspeak list-qualities` to see available qualities.
#
# If you choose a container format that does not support the quality level you specified here,
# we will automatically select the closest level for you.
quality = 0
# Audio Format(for experts). Run `aspeak list-formats` to see available formats.
# Note that it takes precedence over container and quality!
# format = "audio-16khz-128kbitrate-mono-mp3" Jika Anda ingin menggunakan profil selain profil default Anda, Anda dapat menggunakan argumen --profile :
aspeak --profile < PATH_TO_A_PROFILE > text " Hello " Jika Anda ingin menonaktifkan profil untuk sementara, Anda dapat menggunakan argumen --no-profile :
aspeak --no-profile --region eastus --key < YOUR_KEY > text " Hello "rate : Tingkat berbicara suara.0.5 ), nilainya akan dikalikan dengan 100% dan menjadi 50.00% .x-slow , slow , medium , fast , x-fast , default .+10% .f postfix), 1.2f :1f menghasilkan tidak ada perubahan dalam tingkat. Nilai 0.5f menghasilkan separuh dari laju. Nilai 3f menghasilkan tiga kali lipat dari tarif.pitch : Pitch suara.-0.5 ), nilainya akan dikalikan dengan 100% dan menjadi -50.00% .x-low , low , medium , high , x-high , default .+10% .-2st atau +80Hz ):600HzCatatan : Nilai tinggi/rendah yang tidak masuk akal akan dipotong ke nilai -nilai yang wajar oleh layanan kognitif Azure.
Contoh -contoh berikut menganggap bahwa Anda telah mengatur otentikasi di profil Anda.
$ aspeak text " Hello, world " $ aspeak ssml << EOF
<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='en-US'><voice name='en-US-JennyNeural'>Hello, world!</voice></speak>
EOF $ aspeak list-voices$ aspeak list-voices -l zh-CN$ aspeak list-voices -v en-US-SaraNeural Microsoft Server Speech Text to Speech Voice (en-US, SaraNeural)
Display name: Sara
Local name: Sara @ en-US
Locale: English (United States)
Gender: Female
ID: en-US-SaraNeural
Voice type: Neural
Status: GA
Sample rate: 48000Hz
Words per minute: 157
Styles: ["angry", "cheerful", "excited", "friendly", "hopeful", "sad", "shouting", "terrified", "unfriendly", "whispering"]
$ aspeak text " Hello, world " -o output.wav Jika Anda lebih suka mp3 / ogg / webm, Anda dapat menggunakan -c mp3 / -c ogg / -c webm .
$ aspeak text " Hello, world " -o output.mp3 -c mp3
$ aspeak text " Hello, world " -o output.ogg -c ogg
$ aspeak text " Hello, world " -o output.webm -c webm$ aspeak list-qualities Qualities for MP3:
3: audio-48khz-192kbitrate-mono-mp3
2: audio-48khz-96kbitrate-mono-mp3
-3: audio-16khz-64kbitrate-mono-mp3
1: audio-24khz-160kbitrate-mono-mp3
-2: audio-16khz-128kbitrate-mono-mp3
-4: audio-16khz-32kbitrate-mono-mp3
-1: audio-24khz-48kbitrate-mono-mp3
0: audio-24khz-96kbitrate-mono-mp3
Qualities for WAV:
-2: riff-8khz-16bit-mono-pcm
1: riff-24khz-16bit-mono-pcm
0: riff-24khz-16bit-mono-pcm
-1: riff-16khz-16bit-mono-pcm
Qualities for OGG:
0: ogg-24khz-16bit-mono-opus
-1: ogg-16khz-16bit-mono-opus
1: ogg-48khz-16bit-mono-opus
Qualities for WEBM:
0: webm-24khz-16bit-mono-opus
-1: webm-16khz-16bit-mono-opus
1: webm-24khz-16bit-24kbps-mono-opus
$ aspeak list-formats amr-wb-16000hz
audio-16khz-128kbitrate-mono-mp3
audio-16khz-16bit-32kbps-mono-opus
audio-16khz-32kbitrate-mono-mp3
audio-16khz-64kbitrate-mono-mp3
audio-24khz-160kbitrate-mono-mp3
audio-24khz-16bit-24kbps-mono-opus
audio-24khz-16bit-48kbps-mono-opus
audio-24khz-48kbitrate-mono-mp3
audio-24khz-96kbitrate-mono-mp3
audio-48khz-192kbitrate-mono-mp3
audio-48khz-96kbitrate-mono-mp3
ogg-16khz-16bit-mono-opus
ogg-24khz-16bit-mono-opus
ogg-48khz-16bit-mono-opus
raw-16khz-16bit-mono-pcm
raw-16khz-16bit-mono-truesilk
raw-22050hz-16bit-mono-pcm
raw-24khz-16bit-mono-pcm
raw-24khz-16bit-mono-truesilk
raw-44100hz-16bit-mono-pcm
raw-48khz-16bit-mono-pcm
raw-8khz-16bit-mono-pcm
raw-8khz-8bit-mono-alaw
raw-8khz-8bit-mono-mulaw
riff-16khz-16bit-mono-pcm
riff-22050hz-16bit-mono-pcm
riff-24khz-16bit-mono-pcm
riff-44100hz-16bit-mono-pcm
riff-48khz-16bit-mono-pcm
riff-8khz-16bit-mono-pcm
riff-8khz-8bit-mono-alaw
riff-8khz-8bit-mono-mulaw
webm-16khz-16bit-mono-opus
webm-24khz-16bit-24kbps-mono-opus
webm-24khz-16bit-mono-opus
# Less than default quality.
$ aspeak text " Hello, world " -o output.mp3 -c mp3 -q=-1
# Best quality for mp3
$ aspeak text " Hello, world " -o output.mp3 -c mp3 -q=3$ cat input.txt | aspeak textatau
$ aspeak text -f input.txtdengan penyandian khusus:
$ aspeak text -f input.txt -e gbk$ aspeak textMungkin Anda lebih suka:
$ aspeak text -l zh-CN << EOF
我能吞下玻璃而不伤身体。
EOF $ aspeak text "你好,世界! " -l zh-CN$ aspeak text "你好,世界! " -v zh-CN-YunjianNeural$ aspeak text "你好,世界! " -v zh-CN-XiaoxiaoNeural -p 1.5 -r 0.5 -S sad
$ aspeak text "你好,世界! " -v zh-CN-XiaoxiaoNeural -p=-10% -r=+5% -S cheerful
$ aspeak text "你好,世界! " -v zh-CN-XiaoxiaoNeural -p=+40Hz -r=1.2f -S fearful
$ aspeak text "你好,世界! " -v zh-CN-XiaoxiaoNeural -p=high -r=x-slow -S calm
$ aspeak text "你好,世界! " -v zh-CN-XiaoxiaoNeural -p=+1st -r=-7% -S lyricalCatatan : Beberapa format audio tidak didukung saat mengeluarkan ke speaker.
$ aspeak text " Hello World " -F riff-48khz-16bit-mono-pcm -o high-quality.wav Versi baru aspeak ditulis dalam karat, dan pengikatan ularahan disediakan oleh Pyo3.
Berikut adalah contoh sederhana:
from aspeak import SpeechService
service = SpeechService ( region = "eastus" , key = "YOUR_AZURE_SUBSCRIPTION_KEY" )
service . speak_text ( "Hello, world" ) Pertama, Anda perlu membuat instance SpeechService .
Saat membuat instance SpeechService , Anda dapat menentukan parameter berikut:
audio_format (Argumen Posisi): Format audio audio output. Default adalah AudioFormat.Riff24KHz16BitMonoPcm .AudioFormat("mp3", 2) .endpoint : Titik akhir dari Layanan Pidato.region : Atau, Anda dapat menentukan wilayah Layanan Pidato alih -alih mengetik URL titik akhir yang membosankan.key : Kunci langganan Layanan Pidato.token : Token Auth untuk Layanan Pidato. Jika Anda memberikan token, kunci berlangganan akan diabaikan.headers : Header HTTP tambahan untuk layanan pidato.mode : Pilih synthesizer untuk digunakan. Baik rest atau websocket .SpeechService dibuat. Setelah itu, Anda dapat menelepon speak_text() untuk berbicara teks atau speak_ssml() untuk berbicara SSML. Atau Anda dapat menghubungi synthesize_text() atau synthesize_ssml() untuk mendapatkan data audio.
Untuk synthesize_text() dan synthesize_ssml() , jika Anda memberikan output , data audio akan ditulis ke file itu dan fungsi tidak akan mengembalikan None . Jika tidak, fungsi akan mengembalikan data audio.
Berikut adalah opsi umum untuk speak_text() dan synthesize_text() :
locale : Lokal suara. Default adalah en-US .voice : Nama suara. Default adalah en-US-JennyNeural .rate : Tingkat berbicara suara. Itu harus berupa string yang sesuai dengan persyaratan seperti yang didokumentasikan dalam bagian ini: pitch dan ratepitch : Pitch suara. Itu harus berupa string yang sesuai dengan persyaratan seperti yang didokumentasikan dalam bagian ini: pitch dan ratestyle : Gaya suara.aspeak -L -v <VOICE_ID>general .style_degree : Tingkat gaya.role : Peran suara.role menentukan permainan peran berbicara. Suara itu bertindak sebagai usia dan jenis kelamin yang berbeda, tetapi nama suara tidak berubah.zh-CN-XiaomoNeural , zh-CN-XiaoxuanNeural , zh-CN-YunxiNeural , dan zh-CN-YunyeNeural . Tambahkan aspeak ke Cargo.toml Anda.toml:
$ cargo add aspeak Kemudian ikuti dokumentasi peti aspeak .
Ada 4 contoh untuk referensi cepat: