సియోల్లోని ఒక సరఫరాదారుతో లేదా సావో పాలోలోని ఒక కస్టమర్తో వీడియో కాల్లో చేరి, పక్క గదిలో ఉన్న సహోద్యోగితో మాట్లాడినట్లే మాట్లాడటం ఊహించుకోండి. మ్యూట్ (mute) లో ఎదురుచూసే ఇంటర్ప్రెటర్ ఉండరు. చాట్ బాక్స్లో టైప్ చేయడానికి కీబోర్డ్ ముందు వంగి కూర్చున్న వారు ఉండరు. రియల్-టైమ్ AI వాయిస్ ట్రాన్స్లేషన్ (Real-time AI voice translation) దీనిని ఇప్పుడు సాధ్యం చేస్తోంది. ఇది మానవ సంబంధాలను భర్తీ చేయడానికి బదులుగా, మనుషులను విడదీసే అడ్డంకులను తొలగిస్తుంది. కానీ నిజంగా సహజమైన సంభాషణలా అనిపించే వ్యవస్థను నిర్మించడం నిజంగా కష్టమైన పని. మీరు కేవలం పదాలను మార్చడం లేదు. మీరు సాఫ్ట్వేర్ లోపల మానవ మాటల ప్రవాహాన్ని పునర్నిర్మిస్తున్నారు.
పైప్లైన్లోని ఐదు పొరలు (The Five Layers of the Pipeline)
ఒక పని చేసే వ్యవస్థ ఐదు విభిన్న భాగాలుగా విభజించబడింది. ఒక దానిని వదిలేసినా లేదా బలహీనపరిచినా, మొత్తం భ్రమ చెడిపోతుంది.
Voice Communication Layer అనేది పునాది. ఇది మైక్రోఫోన్ క్యాప్చర్, నాయిస్ సప్రెషన్ (noise suppression), ఎకో క్యాన్సిలేషన్ (echo cancellation) మరియు ఇంటర్నెట్ ద్వారా ప్యాకెట్ ట్రాన్స్మిషన్ను నిర్వహిస్తుంది. దీనిని డిజిటల్ ఫోన్ లైన్గా భావించండి. ఒకవేళ ఈ పొర ప్యాకెట్లను వదిలేసినా లేదా జిట్టర్ (jitter) ను కలిగించినా, మిగిలిన పైప్లైన్ మొత్తం పనికిరాని డేటాతో పనిచేస్తుంది. చాలా బృందాలు ఇక్కడ WebRTCని ఉపయోగిస్తాయి, ఎందుకంటే ఇది పీర్-టు-పీర్ (peer-to-peer) కనెక్షన్లను నిర్వహిస్తుంది మరియు అంతర్నిర్మిత అకౌస్టిక్ రక్షణలను కలిగి ఉంటుంది.
తర్వాత Speech-to-Text (STT) వస్తుంది. మీరు వచ్చే శబ్దాన్ని వీలైనంత వేగంగా వ్రాతపూర్వక పదాలుగా మార్చాలి. స్ట్రీమింగ్ STT ఇంజన్లు నిశ్శబ్దం కోసం వేచి ఉండవు. అవి అక్షరాలు (syllables) రాగానే పాక్షిక ట్రాన్స్క్రిప్ట్లను విడుదల చేస్తాయి. ఈ ప్రవర్తన చాలా అవసరం. ఒకవేళ మీ STT మాడ్యూల్ విరామం వచ్చే వరకు బఫర్ (buffer) అయితే, మీరు ఇప్పటికే విలువైన మిల్లీసెకన్లను వృధా చేసినట్లే. ఆధునిక స్ట్రీమింగ్ ఇంప్లిమెంటేషన్లు వచ్చే ఆడియోను నిరంతరం ప్రాసెస్ చేస్తాయి మరియు సందర్భం (context) పెరిగే కొద్దీ వాటి అంచనాలను సవరిస్తాయి.
Machine Translation (MT) మధ్యలో ఉంటుంది. ఇది ముడి వచనాన్ని (raw text) తీసుకుని లక్ష్య భాషలో తిరిగి రాస్తుంది. ప్రారంభ వ్యవస్థలు పదబంధాలను మార్చడం కంటే ఎక్కువ ఏమీ చేయలేకపోయేవి. ప్రస్తుత ట్రాన్స్ఫార్మర్-ఆధారిత (transformer-based) మోడల్స్ సింటాక్స్ (syntax) మరియు లాంగ్-రేంజ్ డిపెండెన్సీలను (long-range dependencies) చాలా బాగా నిర్వహిస్తాయి, కానీ వాటికి ఇంకా జాగ్రత్తగా ఇంటిగ్రేట్ చేయాల్సి ఉంటుంది. మాట్లాడే వ్యక్తి ఆలోచనను పూర్తి చేయకముందే వాక్య భాగాలను అనువదించడం ప్రారంభించడానికి, స్ట్రీమింగ్ ఇన్పుట్ను స్వీకరించే MT మాడ్యూల్ మీకు కావాలి.
తర్వాత Text-to-Speech (TTS) ఉంది. ఇక్కడే మీ వ్యవస్థ తన స్వరాన్ని పొందుతుంది. పాత కనకటెటివ్ (concatenative) TTS, హైవే ఎగ్జిట్ను ప్రకటించే GPS లాగా వినిపించేది. న్యూరల్ TTS మోడల్స్ నేరుగా స్పెక్ట్రోగ్రామ్లను (spectrograms) లేదా రా వేవ్ఫామ్లను (raw waveforms) అంచనా వేయడం ద్వారా ఆటను మార్చేశాయి. అవి ಏగుతూ, దిగుతూ, శ్వాస తీసుకునే స్వరాన్ని ఉత్పత్తి చేస్తాయి. అవి కొన్ని భావోద్వేగ రంగులను (emotional coloring) కూడా కాపాడగలవు, ఇది చాలా ముఖ్యం, ఎందుకంటే రోబోటిక్ మోనోటోన్లో చెప్పే చప్పాతో కూడిన క్షమాపణ అనుకోకుండా వ్యంగ్యంగా అనిపించవచ్చు.
చివరగా, Audio Streaming పొర అనువదించబడిన మాటలను వినేవారికి తిరిగి పంపిస్తుంది. ఇక్కడ టైమింగ్ కూడా ముఖ్యం. సింథసైజ్ చేయబడిన ఆడియో నెట్వర్క్ టైమింగ్తో సరిపోలాలి, తద్వారా అది ముందుగా వచ్చి ఎకోలను (echoes) సృష్టించకుండా లేదా ఆలస్యంగా వచ్చి వినేవారిని నిశ్శబ్దంలో వదిలేయకుండా ఉంటుంది.
లేటెన్సీ సమస్య (The Latency Problem)
లేటెన్సీ (Latency) మీ అతిపెద్ద శత్రువు. మానవ సంభాషణ కేవలం చిన్న విరామాలను మాత్రమే భరిస్తుంది. వ్యవస్థ అనువదించడం ప్రారంభించడానికి ముందు వినియోగదారు పూర్తి వాక్యం ముగిసే వరకు వేచి ఉంటే, ఆ సంభాషణ నెమ్మదిగా మరియు విచ్ఛిన్నంగా అనిపిస్తుంది. ప్రజలు ఒకరి మాటలను ఒకరు అడ్డుకోవడం ప్రారంభిస్తారు, లేదా ఇంకా దారుణంగా చెప్పాలంటే, వాకీ-టాకీ సంభాషణలాంటి అసహజమైన లయలోకి వెళ్ళిపోతారు. మీ లక్ష్యం ఎండ్-టు-ఎండ్ (end-to-end) మొత్తం లేటెన్సీ ఒక సెకను కంటే తక్కువగా ఉండాలి.
ఆ లక్ష్యాన్ని చేరుకోవడానికి, మీరు ఆడియోను చిన్న చిన్న చంక్స్గా (chunks) ప్రాసెస్ చేయాలి. చంక్ పరిమాణాన్ని 20 మిల్లీసెకన్ల నుండి 100 మిల్లీసెకన్ల మధ్య ఉంచండి. ఇరవై మిల్లీసెకన్లు సుమారుగా ఒక హల్లు (consonant) శబ్దం యొక్క వ్యవధిని అందిస్తుంది. వంద మిల్లీసెకన్లు సుమారు ఒకన్నర అక్షరాన్ని (syllable) కలిగి ఉంటుంది. STT, అనువాదం మరియు TTS అన్నీ పాక్షిక సమాచారంతో పనిచేసేలా ఈ చంక్స్ను స్ట్రీమింగ్ పైప్లైన్లోకి పంపండి. ఏదీ వాక్యం ముగిసే వరకు వేచి ఉండకూడదు.
ప్రతి దశలోనూ స్ట్రీమింగ్ ఆడియో ప్రాసెసింగ్ను ఉపయోగించండి. అంటే STT ఇంజన్ నిరంతరం పాక్షిక ట్రాన్స్క్రిప్ట్లను విడుదల చేస్తుంది, MT ఇంజన్ ఒక అర్థవంతమైన క్లాజ్ (clause) ఏర్పరచడానికి తగినంత పదాలను స్వీకరించగానే ముక్కలను అనువదిస్తుంది, మరియు TTS ఇంజన్ వాక్యం యొక్క రెండవ భాగం డీకోడ్ అవుతున్నప్పుడే మొదటి భాగాన్ని మాట్లాడటం ప్రారంభిస్తుంది.
సెకను కంటే తక్కువ లేటెన్సీని సాధించాలంటే ప్రతి దశలోనూ క్రమశిక్షణ అవసరం: క్యాప్చర్, ఎన్కోడ్, ట్రాన్స్మిట్, క్యూ, ప్రాసెస్, సింథసైజ్ మరియు ప్లేబ్యాక్. ప్రతి దశలో అనవసరమైన బఫరింగ్ను తొలగించండి. ఉదాహరణకు, అత్యవసరమైతే తప్ప, అర సెకను లూక్-అహెడ్ (lookahead) అవసరమయ్యే నాయిస్-రిమూవల్ అల్గారిథమ్లను ఉపయోగించవద్దు. రా (raw) PCM కి బదులుగా Opus వంటి సమర్థవంతమైన కంప్రెషన్ ప్రోటోకాల్లను ఉపయోగించండి. నెట్వర్క్ రౌండ్ ట్రిప్స్ (round trips) తక్కువగా ఉండటానికి, ఇద్దరు కాల్ చేసేవారికి భౌగోళికంగా దగ్గరగా ఉన్న ఎడ్జ్ సర్వర్ల (edge servers) పై ఇన్ఫరెన్స్ (inference) నిర్వహించండి.
AI మోడల్స్ ఇంకా ఎక్కడ ఇబ్బంది పడుతున్నాయి
క్లిప్బోర్డ్ ట్రాన్స్లేటర్లు ఎదుర్కోవాల్సిన అవసరం లేని కొన్ని ప్రత్యేకమైన అడ్డంకులను AI తీసుకువస్తుంది.
సందర్భం (Context) అనేది నిజంగా కష్టమైన విషయం. ఇంగ్లీష్లో, 'duck' అనే పదం ఒక జంతువు కావచ్చు, తల వంచడం అనే అర్థంలో క్రియ కావచ్చు, లేదా కొన్ని మాండలికాల్లో ప్రేమగా పిలిచే పదం కూడా కావచ్చు. ఒక పదాన్ని విడిగా చూసే ఇంజిన్ తప్పుగా ఊహించే అవకాశం ఉంది. స్ట్రీమింగ్ యాంప్లిఫికేషన్ వల్ల ఇది మరింత కష్టమవుతుంది, ఎందుకంటే పూర్తి వాక్యం దాని అర్థాన్ని స్పష్టం చేసే లోపే సిస్టమ్ ఆ పదాన్ని ఖరారు చేయాల్సి ఉంటుంది. కొన్ని టీమ్లు దీనిని పరిష్కరించడానికి STT ఇంజిన్లో చిన్న రోల్బ్యాక్ విండోలను నిర్మిస్తాయి, తద్వారా తదుపరి ఆడియో వల్ల అర్థం మారితే ట్రాన్స్క్రిప్ట్ను సవరించడానికి వీలవుతుంది.
ఇంజనీర్లు ఊహించిన దానికంటే వాయిస్ సహజత్వం చాలా ముఖ్యం. ప్రజలు రోబోటిక్ శబ్దాలను ఇష్టపడరు. న్యూరల్ TTS మోడల్స్ మానవ మాటల నుండి ప్రోసోడీ ప్యాటర్న్స్ను క్లోన్ చేయడం ద్వారా వాయిస్లో భావోద్వేగాలను నిలుపుతాయి. అసలు మాట్లాడే వ్యక్తి ఉత్సాహంగా లేదా ఆందోళనగా ఉన్నట్లయితే, అనువదించబడిన అవుట్పుట్ కూడా ప్రతి లైన్ను వాతావరణ నివేదికలా కాకుండా, ఆ శక్తిని కలిగి ఉండాలి. మూల ఆడియో నుండి విరామ చిహ్నాల సూచనలను లేదా స్వర స్థాయి మార్పుల సూచికలను (intonation markers) TTS మాడ్యూల్కు పంపడం వల్ల ఆ మానవ స్పర్శను కాపాడవచ్చు.
సంభాషణలు గందరగోళంగా ఉంటాయి. ప్రజలు ఒకరినొకరు అడ్డుకుంటారు, వెనక్కి వెళ్తారు, "uh" అని అంటారు మరియు కొన్ని వాక్యాలను పూర్తి చేయకుండానే ఆపేస్తారు. ఇటువంటి విరామాలను తెలివిగా నిర్వహించడానికి మీ సిస్టమ్కు Voice Activity Detection (VAD) అవసరం. మంచి VAD అసలు మాటలకు మరియు నేపథ్య శబ్దాలకు మధ్య తేడాను గుర్తించడమే కాకుండా, ఒక మాట మధ్యలో వచ్చే చిన్న విరామానికి మరియు సంభాషణ ముగింపుకు మధ్య ఉన్న తేడాను కూడా గుర్తిస్తుంది. VAD మరీ వేగంగా స్పందిస్తే (trigger-happy), అది సమాధానాల ప్రారంభాన్ని కత్తిరిస్తుంది. ఒకవేళ అది మరీ జాగ్రత్తగా ఉంటే, అది నిశ్శబ్దాన్ని ట్రాన్స్లేషన్ ఇంజిన్కు పంపిస్తుంది, దీనివల్ల కంప్యూట్ వనరులు వృథా అవుతాయి మరియు సంభాషణ ప్రవాహంలో వింత గ్యాప్లు ఏర్పడతాయి.
స్కేల్ మరియు సెక్యూరిటీ
మొదటి ఆర్కిటెక్చరల్ స్కెచ్ నుండే స్కేల్ కోసం సిద్ధమవ్వండి. ఒకే కాల్ను సులభంగా అనువదించే మోనోలిత్, వేల సంఖ్యలో ఏకకాలంలో జరిగే సంభాషణల భారాన్ని తట్టుకోలేక కుప్పకూలిపోతుంది. ప్రతి దశను స్వతంత్రంగా స్కేల్ చేయడానికి మైక్రోసర్వీసెస్ను ఉపయోగించండి. ఒక భాషకు మరొక భాష కంటే ఎక్కువ ఫోనెటిక్ సంక్లిష్టత అవసరమైతే మీ TTS క్యూ నిలిచిపోతే, మీరు STT క్లస్టర్ను తాకకుండానే మరిన్ని TTS వర్కర్లను పెంచుకోవచ్చు. మీ MT సర్వీస్ ఏదైనా నిర్దిష్ట భాష జంట వద్ద ఇబ్బంది పడితే, మీరు ఆ భాగాన్ని మాత్రమే వేరు చేసి స్కేల్ చేయవచ్చు.
సెక్యూరిటీ విషయంలో రాజీ పడకూడదు. వాయిస్ డేటా అనేది బయోమెట్రిక్ మరియు అత్యంత వ్యక్తిగతమైనది. ప్రయాణంలో ఉన్న ముడి ఆడియోను రక్షించడానికి ఎండ్-టు-ఎండ్ ఎన్క్రిప్షన్ను ఉపయోగించండి. మోడల్ మెరుగుదల కోసం వినియోగదారు స్పష్టమైన అనుమతి వంటి నిర్దిష్టమైన, వెల్లడించిన కారణం లేనంత వరకు ముడి వాయిస్ డేటాను నిల్వ చేయకండి. అలా చేసినప్పటికీ, రికార్డింగ్లను ఎన్క్రిప్ట్ చేసి నిల్వ చేయండి మరియు ఒక కఠినమైన షెడ్యూల్ ప్రకారం వాటిని తొలగించండి. కాల్ కంటెంట్ను లీక్ చేసే లేదా రహస్యంగా సంభాషణలను నిల్వ చేసే వాయిస్ ట్రాన్స్లేషన్ సిస్టమ్ వినియోగదారు నమ్మకాన్ని శాశ్వతంగా దెబ్బతీస్తుంది.
బిల్డింగ్ ప్రారంభించండి
డెవలపర్లకు ఇప్పుడు ఓపెన్-సోర్స్ STT మోడల్స్, క్లౌడ్-ఆధారిత MT APIs మరియు కొన్ని సంవత్సరాల క్రితం కనుగొనడం అసాధ్యమైన ప్రీట్రైన్డ్ న్యూరల్ TTS చెక్పాయింట్స్ అందుబాటులో ఉన్నాయి. అవసరమైన భాగాలు సిద్ధంగా ఉన్నాయి. ఆర్కిటెక్చర్ అర్థమైంది.
చిన్నగా ప్రారంభించండి. మైక్రోఫోన్ ఆడియోలోని రెండు సెకన్ల డేటాను స్ట్రీమింగ్ STT ఇంజిన్ ద్వారా పంపండి.
