زبان کی شناخت کرنے والا نظام ہمیشہ کوئی نہ کوئی جواب دیتا ہے، کھانسی کی آواز پر بھی۔ صاف آڈیو یا ایک سے زائد زبانوں والی ریکارڈنگ کے لیے شناخت کو آن رہنے دیں، اور جب ایک ہی زبان شور یا بھاری لہجے کے ساتھ بولی جا رہی ہو تو زبان کا نام خود بتا دیں۔
ہر ٹرانسکرپشن ایک ایسے سوال سے شروع ہوتی ہے جو پڑھنے والے کو کبھی نظر نہیں آتا: یہ کون سی زبان ہے؟ اگر یہ غلط ہو جائے تو باقی پائپ لائن فصیح مگر بے معنی متن بنانے میں لگی رہتی ہے۔ یہ مضمون بتاتا ہے کہ زبان کی شناخت کرنے والا نظام کیا سنتا ہے، لائیو آڈیو اور فائلوں کے لیے یہ کیسے برتاؤ کرتا ہے، اور کب بہتر ہے کہ آپ خود زبان کا نام بتا دیں۔
زبان کی شناخت کرنے والا نظام یہ نہیں سمجھتا کہ کیا کہا جا رہا ہے۔ وہ خود آواز کو دیکھتا ہے: حروف صوت اور صامتوں کا ذخیرہ، الفاظ پر زور دینے کا انداز، جملوں کی لے، اور وہ مختصر اور عام الفاظ جن پر ہر زبان انحصار کرتی ہے۔ ہسپانوی کا اپنا صوتی نظام اور لے ہے؛ ڈچ اور جرمن میں بہت کچھ مشترک ہے مگر چند آوازوں میں وہ الگ ہو جاتی ہیں۔ صاف بولی گئی چند سیکنڈ کی تقریر عام طور پر انہیں الگ کرنے کے لیے کافی ہوتی ہے۔
کئی شناخت کرنے والے نظام یہ کام الفاظ پہچاننے کے ضمنی نتیجے کے طور پر کرتے ہیں۔ وہ آڈیو کے آغاز سے زبان طے کرتے ہیں، اور ہر اس زبان کے لیے ایک امکان دیتے ہیں جسے وہ جانتے ہیں۔ اس ڈیزائن کے دو نتائج ہیں۔ امکانات ہمیشہ مل کر ایک بنتے ہیں، اس لیے "کوئی زبان نہیں" کا جواب ممکن ہی نہیں: خاموشی، کھانسی یا میوزک کی کوئی دھن بھی ایک زبان حاصل کر لیتی ہے، اکثر پورے اعتماد کے ساتھ۔ دوسرا، فیصلہ آغاز سے ہوتا ہے، جو سب سے کمزور نمونہ ہے۔ بہت سی ریکارڈنگز سلام، ناموں اور مقامات سے شروع ہوتی ہیں، جن میں زبان کا سراغ بہت کم ہوتا ہے: "Good morning, Maria, welcome to Berlin" کا جرمن ہونا اتنا ہی ممکن ہے جتنا انگریزی ہونا۔ کچھ ریکارڈنگز خاموشی یا کھانسی سے شروع ہوتی ہیں، اور ایسی آواز پر فیصلہ مانگا جائے تو شناخت کار پھر بھی فیصلہ کر دیتا ہے، اعتماد کے ساتھ، جبکہ اس کے پاس کچھ بھی نہیں ہوتا۔ حقیقی آڈیو میں بھی یہی ہوتا ہے: کمرے کی گونج اور "Bună dimineața" سے شروع ہونے والا رومانیہ کا ایک خطبہ مکمل یقین کے ساتھ اطالوی "Buona domenica" سنا جا سکتا ہے۔
غلط جواب کی قیمت بھی سننے سے زیادہ مہنگی ہے۔ غلط زبان میں ڈیکوڈ کرنے والا شناخت کار غلط ہجے نہیں لکھتا، بلکہ دوبارہ لکھ دیتا ہے۔ "For God so loved the world" کو رومانین سمجھ کر ڈیکوڈ کیا گیا تو نتیجہ "Forgot to love the world" نکلا۔ رومانین جملہ "mândria slujește" انگریزی سمجھ کر ڈیکوڈ ہوا تو "Pride serves" بن گیا، جو اس جملے کا درست ترجمہ ہے جس کا ترجمہ کسی نے مانگا ہی نہیں تھا۔ الفاظ روانی سے ہوتے ہیں اور ٹرانسکرپٹ میں کوئی نشان نہیں ہوتا کہ کچھ غلط ہے، یہی بات اس غلطی کو مہنگا بناتی ہے۔
زبان کی شناخت کو سب سے زیادہ یہ پانچ چیزیں دھوکا دیتی ہیں:
ان میں سے کون سی چیز آپ کو نقصان پہنچاتی ہے، اس کا انحصار اس پر ہے کہ آڈیو لائیو آ رہی ہے یا پہلے سے کسی فائل میں موجود ہے۔
لائیو ٹرانسکرپشن میں پوری ریکارڈنگ موجود نہیں ہوتی کہ اسے دیکھا جا سکے۔ آڈیو بولے جاتے ہوئے پہنچتی ہے، اور ٹرانسکرپٹ بھی اسی کے ساتھ پہنچنا چاہیے۔ اس لیے زبان اسپیکر کے بولنے کے ساتھ ساتھ شناخت ہوتی ہے، اور اگر وہ زبان بدلے تو اس کا پیچھا کیا جاتا ہے۔ ڈیش بورڈ میں لائیو ٹرانسکرپشن شروع کرتے وقت Spoken language سوئچ کے نیچے جو نوٹ آتا ہے، اس کا یہی مطلب ہے: اسپیکر کی زبان خودکار طور پر شناخت ہوتی ہے، اور وہ کسی بھی وقت زبان بدل سکتا ہے۔
تبدیلی لاگو کرنے سے پہلے تصدیق کی جاتی ہے، تاکہ ایک شور والا ٹکڑا ٹرانسکرپٹ کو کسی دوسری زبان میں نہ لے جائے۔ کمزور پہلو آغاز ہے: اگر پہلے الفاظ شور والا سلام ہوں تو پہلی لائن غلط زبان میں آ سکتی ہے۔ زبان کا نام خود بتانے سے یہ مسئلہ ٹل جاتا ہے۔
فائلیں مختلف طریقے سے کام کرتی ہیں، کیونکہ پوری ریکارڈنگ پہلے سے موجود ہوتی ہے۔
فائل ایک بہتر مسئلہ ہے: ابتدائی سیکنڈوں پر بھروسہ کرنے کی ضرورت نہیں۔ فائل کے لیے زبان پوری ریکارڈنگ سے طے ہوتی ہے، اس لیے شروع کا شور والا سلام اسے طے نہیں کر سکتا۔
پھر بھی فائل کی زبان ایک کام چلاؤ مفروضہ ہے، حتمی فیصلہ نہیں۔ جو ریکارڈنگ واقعی درمیان میں زبان بدلتی ہے، مثلاً ایک انٹرویو جو دوسرے حصے میں انگریزی سے رومانین میں چلا جاتا ہے، اس کی پیروی کی جاتی ہے، زبردستی ایک زبان میں نہیں ڈھالی جاتی۔ اور جو ریکارڈنگ پوری میں زبانوں کے درمیان بار بار بدلتی ہے، اسے بھی سنبھالا جاتا ہے۔
وہ نظام جو ایک بار فیصلہ کرے اور پھر مڑ کر نہ دیکھے، غلط جگہ پر پورے اعتماد میں ہوتا ہے۔
جب پوری ریکارڈنگ شور والی ہو تو کوئی شناخت کار زیادہ مدد نہیں کرتا۔ شناخت ڈیفالٹ ہے کیونکہ یہ زیادہ تر درست ہوتی ہے اور اس کی کوئی قیمت نہیں۔ البتہ کچھ ریکارڈنگز کے لیے آپ کو زبان کا نام بتانا چاہیے، اور ڈیش بورڈ بتاتا ہے کہ کون سی ہیں: بولی جانے والی زبان کا نام بتانے سے شور والی ریکارڈنگز اور بھاری لہجوں میں درستگی بہتر ہوتی ہے۔
یہی وہ صورتیں ہیں جہاں شناخت کے پاس سب سے کم مواد ہوتا ہے۔ شور وہ نشانیاں مٹا دیتا ہے جن پر شناخت کار انحصار کرتا ہے؛ بھاری لہجہ انہیں کسی دوسری زبان کی طرف موڑ دیتا ہے؛ اور قریبی رشتے دار جوڑے کے پاس شروع ہی سے کم نشانیاں ہوتی ہیں۔ گونج دار ہال میں پرتگالی لہجے والا انگریزی بولنے والا شخص آواز سے پہچاننا مشکل ہے، اور اگر شناخت کار اسے غلط جگہ رکھ دے تو ٹرانسکرپٹ جب تک غلطی رہتی ہے انگریزی تقریر کو پرتگالی میں بدلتا رہتا ہے۔ زبان کا نام بتانے سے سوال ہی ختم ہو جاتا ہے، اس لیے ساری توجہ الفاظ پر رہتی ہے۔
مختصر فہرست:
زبان کا نام بتانا ٹرانسکرپشن کی ایک ترتیب ہے، آپ کے اکاؤنٹ کی نہیں، اس لیے آپ ہر ریکارڈنگ کے لیے الگ فیصلہ کر سکتے ہیں۔ اوپر کی ساری بات ایک API آپشن پر آ جاتی ہے۔
spokenLanguage غیر موجود ہو تو شناخت کریں؛ session.update بہاؤ کے دورانAPI میں spokenLanguage زبان کا کوڈ ہوتا ہے، جیسے en؛ اسے چھوڑ دیں تو زبان کی شناخت ہوتی ہے۔ یہ فائل یا لنک ٹرانسکرپشن کی settings میں اور ریئل ٹائم سیشن کے آپشنز میں ظاہر ہوتا ہے۔ شناخت اور نام بتانا ایک ہی 100 زبانوں پر لاگو ہوتے ہیں۔ ان میں سے زیادہ سے زیادہ 10 زبانوں میں ترجمہ ایک الگ انتخاب ہے، اور یہ اس پر منحصر نہیں کہ کون سی زبان شناخت ہوئی یا بتائی گئی۔ ترجمہ تقریر کے ساتھ کیسے قدم ملا کر چلتا ہے، اس کا موضوع لائیو ترجمے میں تاخیر، وضاحت کے ساتھ میں ہے۔
{ "name": "Board meeting", "settings": { "spokenLanguage": "en", "speakerLabels": "auto" } }
ریئل ٹائم سیشن بناتے وقت یہی آپشن لیا جاتا ہے، اور آڈیو چلتے ہوئے بھی اسے بدلا جا سکتا ہے۔ ایک session.update ٹیکسٹ فریم جس میں نیا spokenLanguage ہو، اس کے بعد کی تقریر پر لاگو ہوتا ہے؛ اسے "" یا "auto" پر سیٹ کرنے سے سیشن دوبارہ شناخت کی طرف لوٹ جاتا ہے، اور غیر تعاون یافتہ کوڈ نظرانداز ہو جاتا ہے۔ ایک کیپشن ویو جس میں زبان کا بٹن ہو، آپریٹر کو اجازت دے سکتا ہے کہ جوں ہی وہ غلط پہلی لائن دیکھے، زبان کا نام بتا دے، بغیر دوبارہ کنیکٹ کیے۔
{ "type": "session.update", "spokenLanguage": "ro" }
زبانوں کے کوڈز کی فہرست، ان کے ناموں کے ساتھ، GET /v1/languages پر ہے، جس کے لیے کسی کی درکار نہیں۔ ریئل ٹائم کا مکمل بہاؤ، یعنی آپ کے سرور پر سیشن بنانے سے لے کر ڈرافٹس اور کمٹس پڑھنے تک، WebSocket پر ریئل ٹائم ٹرانسکرپشن میں ہے، اور انٹرایکٹو حوالہ {{api}}/docs پر ہے۔ ڈیش بورڈ میں یہی انتخاب نئی ٹرانسکرپشن شروع کرتے وقت Spoken language سوئچ ہے، اور API کی کلیدیں ڈیولپرز کے تحت ہیں۔