1. Gambaran Umum Model Ucapan
1.1. Pengenalan Model TTS dan STT dari OpenAI
Model Text-to-Speech (TTS)
Model TTS dari OpenAI dapat mengubah data teks menjadi output ucapan. Proses ini melibatkan analisis teks, penerapan algoritma sintesis ucapan, dan penyesuaian kualitas suara. Hal ini memungkinkan komputer untuk membaca teks tertulis apa pun, membuat konten lebih mudah dipahami dan diakses. TTS adalah teknologi penting bagi individu dengan gangguan penglihatan, pengemudi, atau siapa pun yang lebih suka menerima informasi melalui pendengaran.
Model Speech-to-Text (STT)
Sebagai padanan bagi TTS, model STT dapat mengubah informasi ucapan menjadi teks tertulis. Ketika memproses input audio asli, sistem STT pertama-tama melakukan deteksi ucapan, diikuti dengan ekstraksi fitur. Kemudian, sistem ini memetakan sinyal audio ke kosa kata menggunakan model akustik dan bahasa, akhirnya menghasilkan output teks. Teknologi STT banyak digunakan dalam pengenalan ucapan, transkripsi pertemuan, dan situasi pembuatan keterangan waktu nyata.
1.2. Skenario Aplikasi
- Pembacaan blog dengan suara
- Generasi ucapan multibahasa
3. API Text-to-Speech
3.1. Memulai dengan Cepat
Pada bagian ini, kami akan menunjukkan bagaimana cara dengan cepat mengubah teks menjadi ucapan menggunakan perintah curl dan klien Python. Baik Anda seorang pengembang atau pengguna non-teknis, Anda dapat dengan mudah menghasilkan file suara hanya dengan mengirim permintaan API.
Mengirim Permintaan Menggunakan Curl
Untuk menghasilkan suara menggunakan alat baris perintah curl, ikuti langkah-langkah berikut:
- Pastikan bahwa curl terinstal di sistem Anda dan Anda memiliki kunci API OpenAI yang valid.
- Gunakan perintah curl berikut untuk mengonversi teks menjadi ucapan:
curl https://api.openai.com/v1/audio/speech \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1",
"input": "Hari ini adalah hari yang luar biasa untuk membangun produk yang disukai orang!",
"voice": "alloy"
}' \
--output speech.mp3
Pada perintah di atas, $OPENAI_API_KEY
mewakili kunci API Anda, bidang input
adalah teks yang ingin Anda konversi, bidang model
menentukan model suara yang akan digunakan, dan parameter voice
memilih suara. Di sini, kami memilih suara logam sintetis alloy
. Opsi --output
terakhir menentukan nama dan format file output.
Menggunakan Klien Python
Jika Anda lebih suka menggunakan bahasa pemrograman Python, Anda dapat menggunakan contoh kode berikut:
from openai import OpenAI
client = OpenAI()
response = client.audio.speech.create(
model="tts-1",
voice="alloy",
input="Hari ini adalah hari yang luar biasa untuk membangun produk yang disukai orang!"
)
response.stream_to_file("output.mp3")
Pada potongan kode ini, kami pertama-tama mengimpor pustaka openai
dan membuat instansi dari klien OpenAI. Kemudian, kami menggunakan metode audio.speech.create
untuk mengirim permintaan, menentukan model, suara, dan teks yang akan dikonversi. Terakhir, kami menggunakan metode stream_to_file
untuk menyimpan aliran suara yang dihasilkan ke suatu file.
3.2. Memilih Kualitas Audio dan Suara
Memilih kualitas audio dan suara yang tepat untuk proyek Anda adalah langkah penting untuk memastikan pengalaman pengguna terbaik. API kami menawarkan dua opsi model kualitas audio: tts-1
dan tts-1-hd
.
-
tts-1
: Memberikan latensi yang lebih rendah, cocok untuk aplikasi real-time, namun dengan kualitas audio yang relatif lebih rendah. -
tts-1-hd
: Menghasilkan output audio berkualitas tinggi, cocok untuk kebutuhan generasi ucapan non-real-time berkualitas tinggi.
Selain itu, API TTS dari OpenAI menawarkan berbagai pilihan suara:
- Alloy
- Echo
- Fable
- Onyx
- Nova
- Shimmer
Berdasarkan persyaratan proyek dan audiens target, Anda dapat menguji sampel suara yang berbeda untuk memilih suara yang paling sesuai. Pertimbangkan faktor gaya berbicara, kecepatan ucapan, dan intonasi untuk menemukan suara yang menyampaikan emosi dan profesionalisme yang sesuai.
3.3. Format Output dan Bahasa yang Didukung
API TTS dari OpenAI secara default menggunakan format output MP3, namun juga mendukung berbagai format audio lainnya:
- Opus: Cocok untuk streaming internet dan komunikasi, dengan latensi rendah.
- AAC: Digunakan untuk kompresi audio digital, disukai oleh platform seperti YouTube, Android, dan iOS.
- FLAC: Format kompresi audio lossless yang digunakan oleh penggemar audio untuk arsip.
Dalam hal dukungan bahasa, API ini umumnya mengikuti model Whisper, menyediakan berbagai pilihan bahasa untuk mendukung banyak bahasa nasional.
3.4. Fungsi Streaming Audio Real-time
Untuk memenuhi kebutuhan aplikasi real-time, API kami menyediakan dukungan untuk streaming audio real-time. Berikut ini adalah contoh implementasi Python untuk streaming audio real-time:
from openai import OpenAI
client = OpenAI()
response = client.audio.speech.create(
model="tts-1",
voice="alloy",
input="Halo dunia! Ini adalah uji coba streaming.",
)
response.stream_to_file("output.mp3")
4. API Speech to Text
4.1. Mulai Cepat
Pada bagian ini, kami akan memperkenalkan fungsionalitas dari API OpenAI untuk speech to text.
Pertama, Anda perlu memiliki kunci API OpenAI yang valid dan menyiapkan file audio.
Anda dapat menggunakan perintah curl
untuk mengirim permintaan POST yang berisi file audio. Ganti OPENAI_API_KEY
dengan kunci API Anda dan atur jalur file yang benar.
curl --request POST \
--url https://api.openai.com/v1/audio/transcriptions \
--header 'Authorization: Bearer OPENAI_API_KEY' \
--header 'Content-Type: multipart/form-data' \
--form file=@/path/to/your/audio/file.mp3 \
--form model=whisper-1
Setelah menjalankan perintah di atas, Anda akan menerima respons berformat JSON yang berisi informasi teks yang telah ditranskripsi.
Sebagai contoh:
{
"text": "Bayangkan ide terliar yang pernah Anda miliki, dan Anda penasaran bagaimana hal itu bisa berkembang menjadi sesuatu yang 100, atau 1.000 kali lebih besar. ..."
}
4.2. Format dan Ukuran Berkas yang Didukung
API ini mendukung berbagai format file audio umum untuk memenuhi berbagai kebutuhan dalam skenario yang berbeda. Format file yang didukung termasuk namun tidak terbatas pada mp3
, mp4
, mpeg
, mpga
, m4a
, wav
, webm
, dll. Hal ini memungkinkan pengguna untuk dengan mudah memproses file audio dari berbagai sumber.
Adapun ukuran berkas, API saat ini memiliki batasan tidak melebihi 25MB. Ini berarti jika file audio Anda lebih besar dari 25MB, Anda perlu membaginya menjadi beberapa segmen yang lebih kecil dari 25MB, atau menggunakan format kompresi yang lebih efisien. Misalnya, format mp3
dan opus
biasanya memberikan kompresi yang efisien, mengurangi ukuran file tanpa mengorbankan terlalu banyak kualitas audio.
Jika Anda menghadapi file yang lebih besar dari 25MB, Anda dapat mempertimbangkan menggunakan pustaka PyDub
di Python untuk membagi audio Anda:
from pydub import AudioSegment
audio_file = AudioSegment.from_file("your_large_audio_file.mp3")
interval = 10 * 60 * 1000 # 10 menit
chunks = make_chunks(audio_file, interval)
for i, chunk in enumerate(chunks):
chunk_name = f"audio_chunk{i}.mp3"
chunk.export(chunk_name, format="mp3")
Pada kode di atas, fungsi make_chunks
akan membagi file audio besar menjadi beberapa segmen audio dengan interval waktu 10 menit. Segmen ini semuanya memenuhi batasan ukuran berkas yang diperlukan oleh API dan dapat diunggah secara terpisah ke API OpenAI untuk ditranskripsi.
Harap dicatat bahwa meskipun PyDub
memberikan cara yang mudah untuk menangani file audio, disarankan untuk tetap memperhatikan keamanan dan stabilitas perangkat lunak pihak ketiga saat menggunakannya. OpenAI tidak memberikan jaminan untuk perangkat lunak pihak ketiga.