ट्रांसक्रिप्शन Telegram बॉट
ट्रांसक्रिप्शन Telegram बॉट
Supabase Edge Functions में Deno के साथ TypeScript इस्तेमाल करके ऐसा Telegram बॉट बनाएं, जो 90+ भाषाओं में ऑडियो और वीडियो संदेशों को ट्रांसक्राइब करे।
कैसे करें गाइड · यह मानता है कि आपने स्पीच टू टेक्स्ट क्विकस्टार्ट पूरा कर लिया है और आपके पास Telegram bot token और Supabase अकाउंट है।
परिचय
इस ट्यूटोरियल में आप सीखेंगे कि स्पीच-टू-टेक्स्ट API के ज़रिए TypeScript और ElevenLabs Scribe मॉडल का उपयोग करके 90+ भाषाओं में ऑडियो और वीडियो संदेशों को ट्रांसक्राइब करने वाला Telegram bot कैसे बनाएं।
ज़रूरी चीज़ें
- API key वाला ElevenLabs अकाउंट (API key)।
- एक Supabase अकाउंट (आप database.new से मुफ़्त अकाउंट बना सकते हैं)।
- आपकी मशीन पर इंस्टॉल किया हुआ Supabase CLI।
- आपकी मशीन पर इंस्टॉल किया हुआ Deno runtime और वैकल्पिक रूप से आपके पसंदीदा IDE में सेटअप।
- एक Telegram अकाउंट।
सेटअप
Telegram bot रजिस्टर करें
नया Telegram bot बनाने के लिए BotFather का इस्तेमाल करें। /newbot कमांड चलाएं और नया bot बनाने के लिए निर्देशों का पालन करें। अंत में, आपको अपना गुप्त bot token मिलेगा। अगले चरण के लिए इसे सुरक्षित रूप से नोट कर लें।

लोकल रूप से Supabase प्रोजेक्ट बनाएं
Supabase CLI इंस्टॉल करने के बाद, लोकल रूप से नया Supabase प्रोजेक्ट बनाने के लिए यह कमांड चलाएं:
ट्रांसक्रिप्शन नतीजे लॉग करने के लिए डेटाबेस टेबल बनाएं
अब, ट्रांसक्रिप्शन नतीजे लॉग करने के लिए नई डेटाबेस टेबल बनाएं:
इससे supabase/migrations डायरेक्टरी में नई migration फ़ाइल बनेगी। फ़ाइल खोलें और यह SQL जोड़ें:
Telegram webhook अनुरोधों को संभालने के लिए Supabase Edge Function बनाएं
अब, Telegram webhook अनुरोधों को संभालने के लिए नया Edge Function बनाएं:
अगर आप VS Code या Cursor इस्तेमाल कर रहे हैं, तो CLI के “Generate VS Code settings for Deno? [y/N]” पूछने पर y चुनें!
एनवायरनमेंट वैरिएबल सेट करें
supabase/functions डायरेक्टरी में एक नई .env फ़ाइल बनाएं और ये वैरिएबल जोड़ें:
डिपेंडेंसीज़
प्रोजेक्ट कुछ डिपेंडेंसीज़ इस्तेमाल करता है:
- Telegram webhook अनुरोधों को संभालने के लिए ओपन-सोर्स grammY Framework।
- Supabase डेटाबेस के साथ काम करने के लिए @supabase/supabase-js लाइब्रेरी।
- स्पीच-टू-टेक्स्ट API के साथ काम करने के लिए ElevenLabs JavaScript SDK।
Supabase Edge Function Deno runtime का इस्तेमाल करता है, इसलिए आपको डिपेंडेंसीज़ इंस्टॉल करने की ज़रूरत नहीं है। आप उन्हें npm: प्रीफ़िक्स के ज़रिए import कर सकते हैं।
Telegram Bot का कोड लिखें
अपनी नई scribe-bot/index.ts फ़ाइल में यह कोड जोड़ें:
कोड को विस्तार से समझें
कोड में कुछ अहम बातें हैं। आइए इन्हें चरण-दर-चरण समझते हैं।
आने वाले अनुरोध को संभालना
आने वाले अनुरोध को संभालने के लिए Deno.serve handler इस्तेमाल करें। handler जांचता है कि अनुरोध में सही secret है या नहीं, फिर अनुरोध को handleUpdate फ़ंक्शन में भेजता है।
वॉइस, ऑडियो और वीडियो संदेश संभालें
grammY framework, खास तरह के संदेशों के लिए filter करने का आसान तरीका देता है। इस मामले में, bot वॉइस, ऑडियो और वीडियो संदेशों को सुन रहा है।
अनुरोध context का इस्तेमाल करके bot फ़ाइल metadata निकालता है और फिर बैकग्राउंड में ट्रांसक्रिप्शन चलाने के लिए Supabase Background Tasks EdgeRuntime.waitUntil का उपयोग करता है।
इस तरह आप यूज़र को तुरंत जवाब दे सकते हैं और फ़ाइल का ट्रांसक्रिप्शन बैकग्राउंड में संभाल सकते हैं।
ElevenLabs API से ट्रांसक्रिप्शन
आखिर में, बैकग्राउंड worker में bot फ़ाइल को ट्रांसक्राइब करने के लिए ElevenLabs JavaScript SDK इस्तेमाल करता है। ट्रांसक्रिप्शन पूरा होने पर bot यूज़र को transcript के साथ जवाब देता है और supabase-js का इस्तेमाल करके Supabase डेटाबेस में log entry लिखता है।
Supabase पर डिप्लॉय करें
अगर आपने अभी तक नहीं किया है, तो database.new पर नया Supabase अकाउंट बनाएं और लोकल प्रोजेक्ट को अपने Supabase अकाउंट से लिंक करें:
डेटाबेस migrations लागू करें
supabase/migrations डायरेक्टरी से डेटाबेस migrations लागू करने के लिए यह कमांड चलाएं:
अपने Supabase dashboard में table editor पर जाएं। वहां आपको खाली transcription_logs टेबल दिखनी चाहिए।

अंत में, Edge Function डिप्लॉय करने के लिए यह कमांड चलाएं:
अपने Supabase dashboard में Edge Functions view पर जाएं। वहां आपको डिप्लॉय किया हुआ scribe-bot फ़ंक्शन दिखना चाहिए। फ़ंक्शन URL नोट कर लें, क्योंकि आगे इसकी ज़रूरत होगी। यह कुछ ऐसा दिखेगा: https://<project-ref>.functions.supabase.co/scribe-bot।

webhook सेट करें
अपने bot का webhook URL https://<PROJECT_REFERENCE>.functions.supabase.co/telegram-bot पर सेट करें (यहां <...> को संबंधित वैल्यू से बदलें)। ऐसा करने के लिए बस नीचे दिए URL पर GET अनुरोध चलाएं (उदाहरण के लिए, अपने browser में):
ध्यान दें कि FUNCTION_SECRET वही secret है जो आपने अपनी .env फ़ाइल में सेट किया था।

फ़ंक्शन secrets सेट करें
अब जब आपने सभी secrets लोकल रूप से सेट कर लिए हैं, तो अपने Supabase प्रोजेक्ट में secrets सेट करने के लिए यह कमांड चलाएं:
bot टेस्ट करें
अंत में, bot को वॉइस संदेश, ऑडियो या वीडियो फ़ाइल भेजकर टेस्ट करें।

जवाब के रूप में transcript दिखने के बाद, Supabase dashboard में वापस अपने table editor पर जाएं। वहां आपको अपनी transcription_logs टेबल में नई row दिखनी चाहिए।
