लेबल वाले ट्रांसक्रिप्ट के लिए दोनों जवाब सही होने चाहिए, और चूँकि लेबल शब्दों के ऊपर बैठते हैं, इसलिए गलत लेबल को बिना टेक्स्ट छुए ठीक किया जा सकता है।
मीटिंग के ट्रांसक्रिप्ट से एक साथ दो सवालों के जवाब मिलते हैं: क्या कहा गया, और किसने कहा। पाठक को बस एक चीज़ दिखती है, किसी पंक्ति के बगल में एक नाम। लेकिन इसके नीचे दो अलग समस्याएँ हैं, जिनके अपने इनपुट हैं और विफल होने के अपने तरीके।
स्पीच रिकग्निशन शब्दों को सुनता है। वह ऑडियो को टेक्स्ट में बदलता है और, अच्छी तरह होने पर, हर शब्द के लिए शुरुआत और अंत का समय भी देता है। उसे इससे फ़र्क नहीं पड़ता कि एक वाक्य के बीच में आवाज़ बदली या नहीं; उसका काम वाक्य को सही लिखना है।
स्पीकर डायराइज़ेशन आवाज़ों को सुनता है। उसे शब्द पता नहीं होते। उसका काम समय-रेखा को टर्न्स में बाँटना और यह बताना है कि कौन-से टर्न एक ही व्यक्ति के हैं: स्पीकर 1, स्पीकर 2। यह शब्द "diary" से लिया गया है, और आउटपुट की यह तस्वीर ठीक बैठती है: एक लॉग कि बात करने का मौका किसके पास था, और कब।
इससे मिलते-जुलते तीन शब्द अक्सर इसके साथ गड़बड़ हो जाते हैं। डायराइज़ेशन बताता है कि कौन कब बोला, बिना यह जाने कि वह कौन है। स्पीकर आइडेंटिफ़िकेशन बताता है कि बोलने का एक हिस्सा किस ज्ञात व्यक्ति का है, जो दर्ज की गई आवाज़ों के सेट में से चुना जाता है। स्पीकर वेरिफ़िकेशन एक हाँ-या-ना वाला सवाल पूछता है: क्या यह आवाज़ सच में व्यक्ति X की है? विक्रेताओं के दावे तभी आसानी से समझ आते हैं जब इन तीनों को अलग रखा जाए, क्योंकि "स्पीकर लेबल" का मतलब टर्न की सीमाओं के मोटे अनुमान से लेकर उन नामों तक कुछ भी हो सकता है जो एक रिकॉर्डिंग से अगली रिकॉर्डिंग तक किसी व्यक्ति के साथ चलते हैं। ये लेबल क्या वादा कर सकते हैं और क्या नहीं, यह जानने के लिए डायराइज़र के अंदर देखना होगा।
ज़्यादातर डायराइज़ेशन सिस्टम तीन चरणों में काम करते हैं, और इनमें से कोई भी भाषा पर निर्भर नहीं करता।
हर चरण अपने आप में गलत हो सकता है। एक धीमे बोलने वाले स्पीकर को छोड़ दिया जाता है। दो मिलती-जुलती आवाज़ें एक हो जाती हैं। जो व्यक्ति शांत से जोश में आ जाता है, वह दो हिस्सों में बँट जाता है।
इस पूरे काम को फ़ील्ड डायराइज़ेशन एरर रेट, DER, से मापता है: बोलने के कुल समय का वह हिस्सा जो छूट गया, गलती से स्पीच माना गया, या गलत स्पीकर को दिया गया, आम तौर पर हर सीमा के आसपास लगभग एक चौथाई सेकंड के "क्षमा-दायरे" (forgiveness collar) के साथ। यह दायरा इसलिए है क्योंकि कोई भी, इंसान हो या मशीन, स्पीकर बदलने की जगह को मिलीसेकंड तक सटीक तय नहीं कर सकता। अकेले डायराइज़र को स्कोर करने के लिए यह सहनशीलता ठीक है। लेकिन ट्रांसक्रिप्ट के लिए नहीं, जहाँ एक चौथाई सेकंड की गलत सीमा किसी शब्द के ऊपर पड़ जाती है।
यहीं दोनों समस्याएँ मिलती हैं, और यहीं लेबल वाले ट्रांसक्रिप्ट की गुणवत्ता तय होती है। डायराइज़र अपनी सीमाएँ कुछ अनिश्चितता के साथ रखता है, अक्सर किसी भी तरफ़ कुछ सौ मिलीसेकंड तक। रिकॉग्नाइज़र शब्दों को उसी टाइमलाइन पर रखता है। अगर इन दोनों को सीधे एक-दूसरे पर रख दिया जाए, तो एक सीमा किसी शब्द के बीच में पड़ जाती है, और "कल" (tomorrow) शब्द का आधा हिस्सा स्पीकर 1 का और बाकी आधा स्पीकर 2 का हो जाता है।
लेबल कुछ देर तक गलत भी हो सकते हैं, इससे पहले कि वे सही हों। डायराइज़र अपने समूहों पर तब ज़्यादा भरोसा करने लगता है जब उसने ज़्यादा ऑडियो सुन लिया हो, इसलिए शुरुआती लेबल बाद में आने वाली बातों के हिसाब से गलत लग सकता है। लाइव ट्रांसक्रिप्ट पर किसी पंक्ति के दिखने के बाद भी लेबल बदला जा सकता है: VocalStack का रीयल-टाइम API एक transcript.amended फ़्रेम भेजता है, जो पक्की हो चुकी पंक्ति के टेक्स्ट या स्पीकर को उसी जगह पर सुधार देता है, ताकि पाठक को विरोधाभास नहीं, बल्कि संशोधन दिखे।
फिर भी, एक पूरी तरह सही जगह पर और पूरी तरह स्थिर लेबल भी अंततः सिर्फ़ एक संख्या होता है। संख्या बातचीत को ट्रैक करने के लिए काफ़ी है; लेकिन पाठक नाम पढ़ना चाहते हैं।
लेबल दो तरीकों से नाम बनता है, और दोनों एक-दूसरे पर आधारित हैं।
पहला तरीका है एक ही रिकॉर्डिंग के अंदर नामकरण। ट्रांसक्रिप्शन जितने स्पीकर पाता है, उनमें से हर एक को 0 से शुरू होने वाला इंडेक्स मिलता है। जिसके पास एक्सेस है, वह रिकॉर्डिंग के दौरान या बाद में हर स्पीकर को नाम दे सकता है। नाम शब्दों के ऊपर एक परत है, इसलिए टेक्स्ट को छुए बिना उसे सेट, बदला या हटाया जा सकता है। API के ज़रिए यह PUT /v1/recordings/{id}/speakers/{idx} है, जिसमें name भेजा जाता है; खाली नाम हो तो लेबल हट जाता है। जिस पंक्ति का speaker -1 है, उस पर कोई लेबल नहीं है, या तो इसलिए कि लेबल बंद थे, या लाइव ड्राफ़्ट में इसलिए कि उस पंक्ति को अभी तक किसी स्पीकर से जोड़ा नहीं गया।
दूसरा तरीका है अलग-अलग रिकॉर्डिंग में पहचान, यानी पहले सेक्शन की आइडेंटिफ़िकेशन समस्या। डायराइज़र सिर्फ़ इतना बता सकता है कि दो आवाज़ें अलग हैं, वे कौन हैं यह नहीं। "अलग" से "यह अना है" तक जाने के लिए सिस्टम को एक संदर्भ चाहिए: एक सहेजी गई आवाज़, जो उस एक व्यक्ति की किसी रिकॉर्डिंग से ली गई हो। कम से कम तीस सेकंड साफ़ बोलना ज़रूरी है, और कुछ मिनट बेहतर हैं। यह नमूना उन रिकॉर्डिंग जैसा भी होना चाहिए जिनसे उसका मिलान होगा: वही व्यक्ति लैपटॉप के माइक्रोफ़ोन पर और स्टेज के माइक्रोफ़ोन पर मशीन को दो अजनबियों से भी कम मिलता-जुलता लग सकता है जो एक ही तरीके से रिकॉर्ड हुए हों। एक बार आवाज़ सहेज ली जाए, तो ट्रांसक्रिप्शन में सुनी गई हर स्पीकर की आवाज़ उससे मिलाई जाती है, और मिलान होने पर नाम ट्रांसक्रिप्ट में आ जाता है। VocalStack में यह सुविधा Voices के अंतर्गत है; फ़ाइल ट्रांसक्रिप्शन और डैशबोर्ड के लाइव सेशन आपकी सहेजी गई आवाज़ों से अपने-आप मिलान करते हैं, और रीयल-टाइम API सेशन सिर्फ़ उन्हीं आवाज़ों को पहचानता है जिन्हें आप identifyVoices में सूचीबद्ध करते हैं।
सहेजी गई आवाज़ बायोमेट्रिक डेटा है: यह किसी भी रिकॉर्डिंग में उस व्यक्ति को पहचान सकती है, और VocalStack में यह उसकी क्लोन की गई आवाज़ का भी काम करती है, जो उसकी पंक्तियाँ ज़ोर से पढ़ सकती है। आवाज़ सहेजने से पहले डैशबोर्ड पूछता है कि क्या आपके पास उस व्यक्ति की अनुमति है, और कोई भी आवाज़ कभी भी हटाई जा सकती है।
यह सब इस मान्यता पर है कि आपको लेबल चाहिए भी। अक्सर नहीं चाहिए।
किसी अकेले व्यक्ति के लेक्चर में हर पंक्ति के सामने "स्पीकर 1" लिखने की ज़रूरत नहीं होती। श्रोताओं को पहले से पता होता है कि माइक्रोफ़ोन किसके पास है। इसलिए स्पीकर-लेबल की सेटिंग की तीन स्थितियाँ हैं, और वे रीयल-टाइम सेशन, ब्रॉडकास्ट, ट्रांसक्रिप्शन और रिकॉर्डिंग, चारों पर एक जैसी हैं।
auto)। एक से ज़्यादा आवाज़ सुनाई देने पर पंक्तियों पर उनके स्पीकर का लेबल लगता है; एक-स्पीकर वाली रिकॉर्डिंग सादा टेक्स्ट रहती है, और बाद में जुड़ने वाली दूसरी आवाज़ को भी पकड़ लिया जाता है। डैशबोर्ड का नया लाइव ट्रांसक्रिप्शन फ़ॉर्म इसी से शुरू होता है।फ़ाइल अपलोड में भी यही speakerLabels विकल्प लगता है, और रीयल-टाइम API आपको स्ट्रीम के बीच में इसे बदलने देता है; विवरण API संदर्भ में हैं। स्पीकर अलग करना और उनके नाम देना बिल में कुछ नहीं जोड़ता (कीमतों वाला पेज पर रेट कार्ड है), इसलिए चुनाव इस बात का है कि पाठक क्या देखे, न कि इसका कितना खर्च होगा।
चालू करने पर डायराइज़ेशन अच्छा है, पर जादू नहीं। दो स्थितियाँ अब भी उसे हरा देती हैं।
पहली है ओवरलैप। जब दो लोग एक साथ बोलते हैं, तो ऑडियो के एक हिस्से में दो आवाज़ें होती हैं। ओवरलैप-अवेयर डायराइज़र शोध में मौजूद हैं और धीरे-धीरे प्रोडक्ट्स में भी आ रहे हैं: उदाहरण के लिए end-to-end neural diarization (EEND) "कौन बोल रहा है" को एक ही जवाब की जगह कई एक-साथ वाले हाँ-या-ना सवालों के सेट की तरह देखता है। फिर भी ज़्यादातर प्रोडक्शन सिस्टम अब भी हर हिस्से को एक ही स्पीकर देते हैं, और उनके ऊपर का रिकॉग्नाइज़र एक समय में एक ही आवाज़ का ट्रांसक्रिप्शन करता है। गरमागरम पैनल चर्चा का क्रॉसटॉक इस क्षेत्र का सबसे कठिन ऑडियो है, और वहाँ हर विक्रेता के लेबल खराब हो जाते हैं। यही वह हिस्सा भी है जिसे बाद में सब उद्धृत करना चाहते हैं।
दूसरी है बहुत मिलती-जुलती आवाज़ें। भाई-बहनों की आवाज़ें इतनी पास हो सकती हैं कि उन्हें भरोसे से अलग करना मुश्किल हो, खासकर जब वे एक घंटे तक छोटे-छोटे टर्न बदलते रहें। टेलीफ़ोन ऑडियो सबके लिए इसे और कठिन बना देता है: नैरोबैंड लाइन 8 kHz पर सैंपल होती है और लगभग 3.4 kHz से ऊपर कुछ नहीं ले जाती, जबकि एक आवाज़ को दूसरी से अलग करने वाली बहुत-सी चीज़ें उस सीमा के ऊपर होती हैं। एक ही फ़ोन लाइन पर बोल रहे दो लोग डायराइज़र को आपसे ज़्यादा एक जैसे लगते हैं।
दोनों समस्याओं का सबसे व्यावहारिक इलाज किसी भी मॉडल से पहले की स्टेज पर है: हर व्यक्ति को अपना माइक्रोफ़ोन दें। हर स्पीकर के लिए एक चैनल हो, तो डायराइज़ेशन बस यह पूछने तक सिमट जाता है कि कौन-सा चैनल तेज़ है; ओवरलैप एक धुंधले ट्रैक की जगह दो साफ़ ट्रैक बन जाता है, और एम्बेडिंग से कठिन काम कभी करवाया ही नहीं जाता। एक टेबल पर लगा एक ही माइक्रोफ़ोन सस्ता है और लगभग हमेशा वही होता है जो आपके पास है, इसीलिए यह लेख बाकी हिस्से के बारे में है।
इनमें से कोई भी सीमा पाठक तक बिना बदले नहीं पहुँचनी चाहिए। चूँकि लेबल शब्दों के ऊपर एक परत हैं, गलत लेबल से टेक्स्ट का कभी नुकसान नहीं होता: किसी भी समय रिकॉर्डिंग पर स्पीकर के नाम सेट या हटाए जा सकते हैं, और लाइव ट्रांसक्रिप्शन में होस्ट चलते रहने के दौरान किसी भी शब्द या पंक्ति को फिर से लिख सकता है, जहाँ हर सुधार चिह्नित और वापस लिए जाने योग्य होता है।
शब्दों की तरफ़ के लिए, वर्ड एरर रेट क्या मापता है और क्या छोड़ देता है में सुधार की परतों का विस्तार से विवरण है; WER रिकॉग्नाइज़र के लिए वही है जो DER डायराइज़र के लिए है, और एक अच्छे ट्रांसक्रिप्ट के लिए दोनों का कम होना ज़रूरी है।