೧೫೦ms ಗಿಂತ ಹೆಚ್ಚು: ರಿಯಲ್-ಟೈಮ್ AI ವಾಯ್ಸ್ ಅಸಿಸ್ಟೆಂಟ್‌ನ ಲೇಟೆನ್ಸಿಯನ್ನು ನಾನು ಹೇಗೆ ಕಡಿಮೆ ಮಾಡಿದೆ

ಲೈವ್ ಕೋಡಿಂಗ್ ಮತ್ತು ತಾಂತ್ರಿಕ ಸಂದರ್ಶನಗಳು (technical interviews) ಡೆವಲಪರ್‌ಗಳಿಗೆ ಒತ್ತಡವನ್ನು ಉಂಟುಮಾಡುತ್ತವೆ. ಹಂಚಿಕೆಯ IDE ಯಲ್ಲಿ ಒಬ್ಬ ತಜ್ಞರು ಪ್ರತಿಯೊಂದು ಸಾಲಿನ ಕೋಡ್ ಅನ್ನು ಗಮನಿಸುತ್ತಿರುವಾಗ ಹೆಚ್ಚಿನ ಜನರು ಕಷ್ಟಪಡುತ್ತಾರೆ.

ಜನರೇಟಿವ್ AI ಇದನ್ನು ಬದಲಾಯಿಸುತ್ತಿದೆ. ನೀವು ಈಗ ಸಂವಾದಾತ್ಮಕ ಅಭ್ಯಾಸದ (interactive practice) ಮೂಲಕ ನೈಜ ಸಂದರ್ಶನದ ಸನ್ನಿವೇಶಗಳನ್ನು ಅನುಕರಿಸಬಹುದು.

ನಾನು ನೇಮಕಾತಿಗಾಗಿ SaaS ಪರಿಕರಗಳನ್ನು ನಿರ್ಮಿಸಲು ತಿಂಗಳುಗಟ್ಟಲೆ ಸಮಯ ವ್ಯಯಿಸಿದೆ. ನಾನು ಒಂದು ಪ್ರಮುಖ ಸಮಸ್ಯೆಯನ್ನು ಎದುರಿಸಿದೆ: ನೆಟ್‌ವರ್ಕ್ ಲೇಟೆನ್ಸಿ (network latency). ಸುಗಮವಾದ AI ಸಂದರ್ಶನ ಅಸಿಸ್ಟೆಂಟ್ ಅನ್ನು ನಿರ್ಮಿಸಲು, ಪ್ರತಿಕ್ರಿಯೆಯ ಸಮಯವು 150ms ಗಿಂತ ಕಡಿಮೆ ಇರಬೇಕು.

ಮನುಷ್ಯರು 200ms ಗಿಂತ ಹೆಚ್ಚಿನ ಯಾವುದೇ ವಿಳಂಬವನ್ನು ಅಸಹಜವೆಂದು ಭಾವಿಸುತ್ತಾರೆ. ಈ ಮಿತಿಯೊಳಗೆ ಇರಲು, ಇಡೀ ಪೈಪ್‌ಲೈನ್ ವೇಗವಾಗಿ ಚಲಿಸಬೇಕು: • ಆಡಿಯೋ ಕ್ಯಾಪ್ಚರ್ (Audio capture) • ಸ್ಟ್ರೀಮಿಂಗ್ (Streaming) • LLM ಇನ್ಫರೆನ್ಸ್ (LLM inference) • ಟೆಕ್ಸ್ಟ್-ಟು-ಸ್ಪೀಚ್ (Text-to-Speech) • ಆಡಿಯೋ ಪ್ಲೇಬ್ಯಾಕ್ (Audio playback)

ಈ ಕಾರ್ಯಕ್ಕೆ ಸ್ಟ್ಯಾಂಡರ್ಡ್ HTTP ರಿಕ್ವೆಸ್ಟ್‌ಗಳು ತುಂಬಾ ನಿಧಾನವಾಗಿವೆ. ನೀವು ಕ್ಲೈಂಟ್ ಸೈಡ್‌ನಲ್ಲಿ ಡೇಟಾವನ್ನು ಪ್ರೊಸೆಸ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.

ವಾಯ್ಸ್ ಆಕ್ಟಿವಿಟಿ ಡಿಟೆಕ್ಷನ್ (Voice Activity Detection - VAD) ಮೊದಲ ಅಡೆತಡೆಯಾಗಿದೆ. ಬಳಕೆದಾರರು ಯಾವಾಗ ಮಾತನಾಡಲು ಪ್ರಾರಂಭಿಸುತ್ತಾರೆ ಮತ್ತು ಯಾವಾಗ ನಿಲ್ಲಿಸುತ್ತಾರೆ ಎಂಬುದು ನಿಮಗೆ ನಿಖರವಾಗಿ ತಿಳಿದಿರಬೇಕು. ಇದು ನಿಮ್ಮ ಸರ್ವರ್‌ಗೆ ಮೌನವಾಗಿರುವ ಆಡಿಯೋವನ್ನು ಕಳುಹಿಸುವುದನ್ನು ತಡೆಯುತ್ತದೆ.

ಇದನ್ನು ಪರಿಹರಿಸಲು ನಾನು JavaScript AudioWorklet ಅನ್ನು ಬಳಸಿದೆ. ಇದು ರೊ (raw) PCM ಆಡಿಯೋ ಪ್ರೊಸೆಸಿಂಗ್ ಅನ್ನು ಪ್ರತ್ಯೇಕ ಥ್ರೆಡ್‌ಗೆ ವರ್ಗಾಯಿಸುತ್ತದೆ. ಇದು ಮುಖ್ಯ UI ಥ್ರೆಡ್ ಅನ್ನು ಮುಕ್ತವಾಗಿರಿಸುತ್ತದೆ. ಇದರರ್ಥ ಬಳಕೆದಾರರ ಬ್ರೌಸರ್ ಅಥವಾ IDE ಅನ್ನು ನಿಧಾನಗೊಳಿಸದೆ AI ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಸಕ್ರಿಯವಾಗಿರುತ್ತದೆ.

ರಿಯಲ್-ಟೈಮ್ ಕೋಡ್ ಅನಾಲಿಸಿಸ್ ಮತ್ತೊಂದು ಸವಾಲಾಗಿದೆ. ಸಿಸ್ಟಮ್ ಆಡಿಯೋ ಮತ್ತು ಎಡಿಟರ್‌ನಲ್ಲಿರುವ ಕೋಡ್ ಎರಡನ್ನೂ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕು. WebSockets ಬಳಸುವ ಮೂಲಕ, ನಾನು ಟೆಕ್ಸ್ಟ್ ಎಡಿಟರ್ ಡೇಟಾವನ್ನು ವಾಯ್ಸ್ ಇನ್‌ಪುಟ್‌ನೊಂದಿಗೆ ಸಿಂಕ್ ಮಾಡುತ್ತೇನೆ. ಇದು ಬಳಕೆದಾರರು ಟೈಪ್ ಮಾಡುವಾಗ ಬಗ್‌ಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಅಥವಾ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳನ್ನು ಸೂಚಿಸಲು AI ಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ನೀವು ತಾಂತ್ರಿಕ ಸಂದರ್ಶನಗಳಿಗೆ ಸಿದ್ಧರಾಗಲು ಬಯಸಿದರೆ, ಈ ಹಂತಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿ:

  • ಜೋರಾಗಿ ಯೋಚಿಸುವುದನ್ನು ಅಭ್ಯಾಸ ಮಾಡಿ. ಕೋಡ್ ಮಾಡುವಾಗ ನಿಮ್ಮ ತರ್ಕವನ್ನು (logic) ವಿವರಿಸಿ.
  • AI ಸಿಮ್ಯುಲೇಶನ್‌ಗಳನ್ನು ಬಳಸಿ. ನಿಮ್ಮ ಪ್ರತಿಕ್ರಿಯೆಯ ಸಮಯ ಮತ್ತು ಕೋಡ್‌ನ ಸುಗಮತೆಯ ಬಗ್ಗೆ ವರದಿಗಳನ್ನು ಪಡೆಯಿರಿ.

ಕಡಿಮೆ ಲೇಟೆನ್ಸಿ ಹೊಂದಿರುವ ವಾಯ್ಸ್ ಆಪ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಆಡಿಯೋ ಕಂಪ್ರೆಷನ್ ಮತ್ತು ಸರ್ವರ್ ಪವರ್ ನಡುವೆ ಸಮತೋಲನ ಅಗತ್ಯವಿದೆ.

ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳಲ್ಲಿ ನೀವು ಆಡಿಯೋ ಸ್ಟ್ರೀಮಿಂಗ್ ಅನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುತ್ತೀರಿ? ನೀವು ಬ್ರೌಸರ್‌ನಲ್ಲಿ VAD ಮಾಡೆಲ್‌ಗಳನ್ನು ಬಳಸುತ್ತೀರಾ?

ನಿಮ್ಮ ಅನಿಸಿಕೆಗಳನ್ನು ಕಾಮೆಂಟ್‌ಗಳಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿ.

ಮೂಲ: https://dev.to/websterliu/oltre-i-150ms-come-ho-ridotto-la-latenza-per-creare-un-assistente-vocale-ai-in-tempo-reale-1jj5