Beranda → Blog → Cara membuat bot Telegram yang mengubah pesan suara jadi teks
Cara membuat bot Telegram yang mengubah pesan suara jadi teks
Pesan suara tidak bisa dibaca saat rapat, di kereta, atau ketika Anda sekadar malas mendengarkan. Bot yang membalas pesan suara dengan teksnya menghapus gesekan itu, dan membangunnya cukup satu malam. Berikut alurnya dari berkas sampai balasan.
Apa yang dikerjakan bot
Logikanya muat dalam empat langkah:
- Terima pembaruan berisi pesan suara dan baca id berkasnya.
- Unduh berkas dari tautan yang diberikan Telegram.
- Kirim untuk dikenali.
- Balas dengan teksnya di utas yang sama.
Detail yang menyenangkan: Telegram menyimpan pesan suara sebagai ogg/opus — format yang diterima tanpa konversi sama sekali.
Penangan pesannya
Contoh ini memakai python-telegram-bot, tapi logikanya sama di pustaka mana pun:
import io
from telegram import Update
from telegram.ext import Application, MessageHandler, filters, ContextTypes
from openai import OpenAI
client = OpenAI(base_url="https://voicesscribe.com/v1", api_key="kunci Anda")
async def on_voice(update: Update, ctx: ContextTypes.DEFAULT_TYPE):
voice = update.message.voice or update.message.audio
tg_file = await ctx.bot.get_file(voice.file_id)
buf = io.BytesIO(await tg_file.download_as_bytearray())
buf.name = "voice.ogg"
text = client.audio.transcriptions.create(model="whisper-1", file=buf).text
await update.message.reply_text(text or "tidak ada ucapan yang terbaca")
app = Application.builder().token("token bot").build()
app.add_handler(MessageHandler(filters.VOICE | filters.AUDIO, on_voice))
app.run_polling()
Baris paling penting adalah pengisian buf.name. Tanpa nama berkas, pustaka tidak bisa menebak formatnya dan permintaannya gagal.
Bagian yang menjebak
- Balasan lambat. Kirim status "sedang mengetik" selama pengenalan berjalan, kalau tidak bot terlihat macet.
- Hasil panjang. Telegram memotong pesan di atas 4096 karakter, jadi transkrip panjang harus dipecah.
- Pesan video bulat. Datang sebagai tipe video_note tersendiri; audionya tetap terbaca, tapi tipenya harus ditangani eksplisit.
- Obrolan grup. Secara bawaan bot tidak melihat pesan orang lain — mode privasi dimatikan lewat BotFather.
Yang ditambahkan setelah versi pertama
Versi pertama membalas teks polos. Tiga hal berikutnya yang biasa ditambahkan: ringkasan untuk pesan panjang, kuota per pengguna agar bot tidak jadi layanan gratis sedunia, dan penyimpanan transkrip supaya riwayatnya bisa dicari.
Catat pemakaian dalam menit audio: begitulah cara penagihan bekerja, dan angka yang sama menunjukkan biaya tiap pengguna.
Coba dengan rekaman Anda sendiri. Pendaftaran memakan waktu satu menit, dan menit gratisnya cukup untuk menilai kualitasnya.
Ambil kunci API gratisPertanyaan yang sering diajukan
Perlukah mengonversi berkas suara Telegram?
Tidak. Aplikasi mengirim ogg/opus yang diterima langsung — cukup beri nama berkas berakhiran .ogg.
Kenapa suara sangat pendek gagal?
Biasanya itu rekaman kosong sepersekian detik akibat salah tekan. Periksa durasinya sebelum dikirim.
Bagaimana melihat siapa memakai berapa?
Jumlahkan durasi pesan yang diproses per pengguna: penagihan per menit audio, jadi metrik itu sekaligus biaya Anda.
Apakah pesan video bulat bisa ditranskrip?
Bisa, audio di dalamnya terbaca sama saja. Bedanya hanya tipe pesan di API.
Bacaan terkait
- Transkripsi pesan suara: WhatsApp, Telegram, dan lainnya — Cara mengubah pesan suara menjadi teks secara otomatis: format ogg/opus, menangani rekaman pendek, dan contoh kode untuk bot layanan pelanggan.
- Cara mengubah catatan suara menjadi teks secara otomatis — Mengubah catatan suara dari ponsel dan perekam menjadi basis pengetahuan yang bisa dicari: folder tersinkron, skrip pemantau, dan templat catatan.
- Suara ke teks dengan Python: dari satu berkas ke skrip yang jalan — Transkripsi Python yang berjalan dalam sepuluh menit: pemasangan, permintaan pertama, format respons, penanganan galat, dan kesalahan yang paling banyak memakan waktu.