آشکارساز زبان همیشه جوابی میدهد، حتی برای یک سرفه. برای صدای تمیز یا صدایی با چند زبان، تشخیص را روشن بگذارید، و وقتی یک زبان روی نویز یا با لهجهٔ سنگین گفته میشود، آن را نام ببرید.
هر رونویسی با پرسشی شروع میشود که خواننده هرگز آن را نمیبیند: این صدا به چه زبانی است؟ اگر این پاسخ اشتباه باشد، بقیهٔ مسیر با تلاش زیاد، متنی روان اما بیمعنا تولید میکند. این مقاله توضیح میدهد که یک آشکارساز زبان به چه گوش میدهد، تشخیص برای صدای زنده و برای فایل چطور رفتار میکند، و چه زمانی بهتر است زبان را خودتان نام ببرید.
آشکارساز زبان معنای حرفی را که زده میشود نمیفهمد. به خود صدا نگاه میکند: مجموعهٔ صامتها و مصوتها، نحوهٔ تکیه در هجاها، ریتم جملهها، و کلمههای کوتاه و پرتکراری که هر زبانی به آنها تکیه دارد. اسپانیایی مجموعهٔ مصوت و ریتم مخصوص خودش را دارد؛ هلندی و آلمانی خیلی چیزها را با هم شریکاند، اما در چند صدا از هم جدا میشوند. معمولاً چند ثانیه گفتار واضح کافی است تا آنها را از هم تشخیص دهد.
بسیاری از بازشناسندها این کار را بهعنوان محصول جانبی تشخیص کلمات انجام میدهند. آنها زبان را از ابتدای صدا تعیین میکنند، بهصورت احتمالی برای هر زبانی که میشناسند. این طراحی دو پیامد دارد. احتمالها همیشه جمعشان یک است، پس هیچ پاسخ «بدون زبان» وجود ندارد: سکوت، یک سرفه یا یک جملهٔ موسیقی هم زبانی میگیرند، اغلب با امتیازی مطمئن. و تصمیم از ابتدای صدا گرفته میشود، که بدترین نمونهای است که میتوانید انتخاب کنید. بسیاری از ضبطها با احوالپرسی، اسم و نام مکان شروع میشوند، و اینها اطلاعات زبانی کمی دارند: «صبح بخیر، ماریا، به برلین خوش آمدید» تقریباً به همان اندازه آلمانی است که انگلیسی. بعضی دیگر با سکوت یا سرفه شروع میشوند، و آشکارسازی که از آنها تصمیم بگیرد، بدون هیچ چیزی، با اطمینان تصمیم میگیرد. صدای واقعی هم همینطور رفتار میکند: یک موعظهٔ رومانیایی که با نویز اتاق و «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 یک رونویسی فایل یا لینک، و در گزینههای یک نشست بلادرنگ ظاهر میشود. تشخیص و نام بردن هر دو همان ۱۰۰ زبان را پوشش میدهند. ترجمه به تا ۱۰ زبان از آنها انتخابی جداست و به این بستگی ندارد که کدام زبان تشخیص داده یا نام برده شده است. اینکه ترجمه چطور با سرعت گفتار همگام میشود، موضوع تأخیر ترجمهٔ زنده، توضیح داده شده است.
{ "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 زیر Developers قرار دارند.