𝟭𝟱𝟬ms-ന് അപ്പുറം: ഒരു റിയൽ-ടൈം AI വോയ്‌സ് അസിസ്റ്റന്റിനായുള്ള ലേറ്റൻസി (Latency) ഞാൻ എങ്ങനെ കുറച്ചു

ലൈവ് കോഡിംഗും ടെക്നിക്കൽ ഇന്റർവ്യൂകളും ഡെവലപ്പർമാരിൽ സമ്മർദ്ദം ഉണ്ടാക്കുന്നു. ഒരു വിദഗ്ദ്ധൻ ഷെയർ ചെയ്ത IDE-യിൽ കോഡിന്റെ ഓരോ വരിയും നിരീക്ഷിക്കുമ്പോൾ മിക്കവരും ബുദ്ധിമുട്ടാറുണ്ട്.

ജനറേറ്റീവ് AI ഇത് മാറ്റുന്നു. ഇന്ററാക്ടീവ് പ്രാക്ടീസിലൂടെ നിങ്ങൾക്ക് ഇപ്പോൾ യഥാർത്ഥ ഇന്റർവ്യൂ സാഹചര്യങ്ങൾ അനുകരിക്കാൻ (simulate) കഴിയും.

റിക്രൂട്ടിംഗിനായുള്ള SaaS ടൂളുകൾ നിർമ്മിക്കാൻ ഞാൻ മാസങ്ങൾ ചിലവഴിച്ചു. അവിടെ ഞാൻ ഒരു പ്രധാന പ്രശ്നം നേരിട്ടു: നെറ്റ്‌വർക്ക് ലേറ്റൻസി (network latency). സുഗമമായ ഒരു AI ഇന്റർവ്യൂ അസിസ്റ്റന്റ് നിർമ്മിക്കുന്നതിന്, റെസ്‌പോൺസ് ടൈം 150ms-ൽ താഴെയായിരിക്കണം.

200ms-ൽ കൂടുതലുള്ള ഏത് താമസംയും മനുഷ്യർക്ക് അസ്വാഭാവികമായി തോന്നും. ഈ പരിധിക്കുള്ളിൽ നിൽക്കാൻ, മുഴുവൻ പൈപ്പ്‌ലൈനും വേഗത്തിൽ പ്രവർത്തിക്കണം: • ഓഡിയോ ക്യാപ്‌ചർ (Audio capture) • സ്ട്രീമിംഗ് (Streaming) • LLM ഇൻഫറൻസ് (LLM inference) • ടെക്സ്റ്റ്-ടു-സ്പീച്ച് (Text-to-Speech) • ഓഡിയോ പ്ലേബാക്ക് (Audio playback)

ഈ ദൗത്യത്തിന് സാധാരണ HTTP റിക്വസ്റ്റുകൾ വളരെ സാവധാനമാണ്. ഡാറ്റ ക്ലയന്റ് സൈഡിൽ (client side) തന്നെ പ്രോസസ്സ് ചെയ്യേണ്ടതുണ്ട്.

വോയ്‌സ് ആക്റ്റിവിറ്റി ഡിറ്റക്ഷൻ (Voice Activity Detection - VAD) ആണ് ആദ്യത്തെ തടസ്സം. ഒരു ഉപയോക്താവ് എപ്പോൾ സംസാരിച്ചു തുടങ്ങുന്നുവെന്നും എപ്പോൾ നിർത്തുന്നുവെന്നും കൃത്യമായി അറിയണം. ഇത് നിശബ്ദമായ ഓഡിയോ സെർവറിലേക്ക് അയക്കുന്നത് ഒഴിവാക്കാൻ സഹായിക്കുന്നു.

ഇത് പരിഹരിക്കാൻ ഞാൻ ഒരു JavaScript AudioWorklet ഉപയോഗിച്ചു. ഇത് റോ (raw) PCM ഓഡിയോ പ്രോസസ്സിംഗിനെ ഒരു പ്രത്യേക ത്രെഡിലേക്ക് (thread) മാറ്റുന്നു. ഇത് മെയിൻ UI ത്രെഡ് ഫ്രീയായി നിലനിർത്തുന്നു. അതായത്, ഉപയോക്താവിന്റെ ബ്രൗസറെയോ IDE-യെയോ സാവധാനത്തിലാക്കാതെ തന്നെ AI പശ്ചാത്തലത്തിൽ സജീവമായിരിക്കും.

റിയൽ-ടൈം കോഡ് അനാലിസിസ് മറ്റൊരു വെല്ലുവിളിയാണ്. സിസ്റ്റത്തിന് ഓഡിയോയും എഡിറ്ററിലെ കോഡും ഒരേപോലെ മനസ്സിലാക്കാൻ കഴിയണം. WebSockets ഉപയോഗിക്കുന്നതിലൂടെ, ഞാൻ ടെക്സ്റ്റ് എഡിറ്റർ ഡാറ്റയെ വോയ്‌സ് ഇൻപുട്ടുമായി സിങ്ക് (sync) ചെയ്യുന്നു. ഇത് ഉപയോക്താവ് ടൈപ്പ് ചെയ്യുമ്പോൾ തന്നെ ബഗുകൾ കണ്ടെത്താനും ഒപ്റ്റിമൈസേഷനുകൾ നിർദ്ദേശിക്കാനും AI-യെ സഹായിക്കുന്നു.

നിങ്ങൾക്ക് ടെക്നിക്കൽ ഇന്റർവ്യൂകൾക്കായി തയ്യാറെടുക്കണമെന്നുണ്ടെങ്കിൽ, ഈ ഘട്ടങ്ങൾ പരീക്ഷിച്ചു നോക്കൂ:

  • ഉറക്കെ ചിന്തിച്ച് സംസാരിക്കാൻ ശീലിക്കുക. കോഡ് ചെയ്യുമ്പോൾ നിങ്ങളുടെ ലോജിക് വിശദീകരിക്കുക.
  • AI സിമുലേഷനുകൾ ഉപയോഗിക്കുക. നിങ്ങളുടെ റെസ്‌പോൺസ് ടൈമിനെക്കുറിച്ചും കോഡിന്റെ ഒഴുക്കിനെക്കുറിച്ചും റിപ്പോർട്ടുകൾ നേടുക.

ലോ-ലേറ്റൻസി വോയ്‌സ് ആപ്പുകൾ നിർമ്മിക്കുന്നതിന് ഓഡിയോ കംപ്രഷനും (audio compression) സെർവർ പവറും തമ്മിലുള്ള സന്തുലിതാവസ്ഥ ആവശ്യമാണ്.

നിങ്ങളുടെ പ്രോജക്റ്റുകളിൽ ഓഡിയോ സ്ട്രീമിംഗ് എങ്ങനെയാണ് കൈകാര്യം ചെയ്യുന്നത്? നിങ്ങൾ ബ്രൗസറിൽ VAD മോഡലുകൾ ഉപയോഗിക്കാറുണ്ടോ?

നിങ്ങളുടെ അഭിപ്രായങ്ങൾ കമന്റുകളിൽ പങ്കുവെക്കുക.

സ്രോതസ്സ്: https://dev.to/websterliu/oltre-i-150ms-come-ho-ridotto-la-latenza-per-creare-un-assistente-vocale-ai-in-tempo-reale-1jj5