𝟭೫೦ms ಗಿಂತಲೂ ಹೆಚ್ಚು: ರಿಯಲ್-ಟೈಮ್ AI ವಾಯ್ಸ್ ಅಸಿಸ್ಟೆಂಟ್ಗಳಿಗಾಗಿ ನಾನು ಲೇಟೆನ್ಸಿಯನ್ನು (Latency) ಹೇಗೆ ಕಡಿಮೆ ಮಾಡಿದೆ
ಲೈವ್ ಕೋಡಿಂಗ್ ಮತ್ತು ತಾಂತ್ರಿಕ ಸಂದರ್ಶನಗಳು (technical interviews) ಡೆವಲಪರ್ಗಳಿಗೆ ಒತ್ತಡದಾಯಕವಾಗಿರುತ್ತವೆ. ಯಾರೋ ಒಬ್ಬರು ನಿಮ್ಮ ಪ್ರತಿಯೊಂದು ಕೋಡ್ ಸಾಲನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುವುದನ್ನು ನೋಡುವುದು ಒತ್ತಡವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ.
ಜನರೇಟಿವ್ AI (Generative AI) ಈಗ ಇದನ್ನು ಬದಲಾಯಿಸುತ್ತಿದೆ. ನೈಜ ಸಂದರ್ಶನದ ಸನ್ನಿವೇಶಗಳನ್ನು ಅನುಕರಿಸಲು (simulate) ನೀವು AI ಅನ್ನು ಬಳಸಬಹುದು.
ನಾನು ಸಂದರ್ಶನಗಳಿಗಾಗಿ ಒಂದು AI ಅಸಿಸ್ಟೆಂಟ್ ಅನ್ನು ನಿರ್ಮಿಸಿದೆ. ಪ್ರತಿಕ್ರಿಯೆಯ ಸಮಯವನ್ನು (response time) 150ms ಗಿಂತ ಕಡಿಮೆ ಇಡುವುದು ನನ್ನ ಗುರಿಯಾಗಿತ್ತು.
ಮಾನವ ಸಂಭಾಷಣೆಯಲ್ಲಿ 200ms ಗಿಂತ ಹೆಚ್ಚು ವಿಳಂಬವಾದರೆ ಅದು ಅಸಹಜವಾಗಿ ಕಾಣುತ್ತದೆ. AI ಅನ್ನು ಮನುಷ್ಯನಂತೆ ಅನುಭವಿಸುವಂತೆ ಮಾಡಲು, ಸಂಪೂರ್ಣ ಪೈಪ್ಲೈನ್ (pipeline) ವೇಗವಾಗಿರಬೇಕು. ಇದು ಆಡಿಯೋ ಕ್ಯಾಪ್ಚರ್, ಸ್ಟ್ರೀಮಿಂಗ್, LLM ಇನ್ಫರೆನ್ಸ್ (inference) ಮತ್ತು ಟೆಕ್ಸ್ಟ್-ಟು-ಸ್ಪೀಚ್ (text-to-speech) ಅನ್ನು ಒಳಗೊಂಡಿದೆ.
ಇದಕ್ಕಾಗಿ ಸ್ಟ್ಯಾಂಡರ್ಡ್ HTTP ರಿಕ್ವೆಸ್ಟ್ಗಳು ತುಂಬಾ ನಿಧಾನವಾಗಿರುತ್ತವೆ. ನೀವು ಕ್ಲೈಂಟ್ ಸೈಡ್ನಲ್ಲಿ (client side) ಡೇಟಾವನ್ನು ಪ್ರೊಸೆಸ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.
ಮೊದಲ ಸಮಸ್ಯೆಯೆಂದರೆ ವಾಯ್ಸ್ ಆಕ್ಟಿವಿಟಿ ಡಿಟೆಕ್ಷನ್ (Voice Activity Detection - VAD). ಬಳಕೆದಾರರು ಯಾವಾಗ ಮಾತನಾಡಲು ಪ್ರಾರಂಭಿಸುತ್ತಾರೆ ಮತ್ತು ಯಾವಾಗ ನಿಲ್ಲಿಸುತ್ತಾರೆ ಎಂಬುದು ನಿಮಗೆ ನಿಖರವಾಗಿ ತಿಳಿದಿರಬೇಕು. ಇದು ನಿಮ್ಮ ಸರ್ವರ್ಗೆ ಮೌನವನ್ನು (silence) ಕಳುಹಿಸುವುದನ್ನು ತಡೆಯುತ್ತದೆ.
ನಾನು ರೊ (raw) PCM ಸ್ಯಾಂಪಲ್ಗಳನ್ನು ಪ್ರತ್ಯೇಕ ಥ್ರೆಡ್ನಲ್ಲಿ ನಿರ್ವಹಿಸಲು JavaScript ನಲ್ಲಿ AudioWorklet ಅನ್ನು ಬಳಸಿದೆ. ಇದು ಮುಖ್ಯ UI ಥ್ರೆಡ್ ಅನ್ನು ಮುಕ್ತವಾಗಿರಿಸುತ್ತದೆ. ಇದು AI ಅಸಿಸ್ಟೆಂಟ್ ಬ್ರೌಸರ್ ಅಥವಾ ಕೋಡ್ ಎಡಿಟರ್ ಅನ್ನು ನಿಧಾನಗೊಳಿಸದಂತೆ ಖಚಿತಪಡಿಸುತ್ತದೆ.
ಮತ್ತೊಂದು ಸವಾಲು ರಿಯಲ್-ಟೈಮ್ ಕೋಡ್ ಅನಾಲಿಸಿಸ್ (code analysis). ಸಿಸ್ಟಮ್ ಆಡಿಯೋ ಮತ್ತು ಕೋಡ್ ಎಡಿಟರ್ನ ಸ್ಥಿತಿಯೆರಡನ್ನೂ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕು.
ವೆಬ್ಸಾಕೆಟ್ಗಳನ್ನು (WebSockets) ಬಳಸಿ ಟೆಕ್ಸ್ಟ್ ಎಡಿಟರ್ ಡೇಟಾವನ್ನು ವಾಯ್ಸ್ ಇನ್ಪುಟ್ನೊಂದಿಗೆ ಸಂಯೋಜಿಸುವ ಮೂಲಕ, ಬಳಕೆದಾರರು ಟೈಪ್ ಮಾಡುವಾಗ AI ಬಗ್ಗಳನ್ನು ಅಥವಾ ಎಡ್ಜ್ ಕೇಸ್ಗಳನ್ನು (edge cases) ಪತ್ತೆಹಚ್ಚಬಹುದು.
ನೀವು ಸಂದರ್ಶನಗಳಿಗಾಗಿ ಅಭ್ಯಾಸ ಮಾಡಲು ಬಯಸಿದರೆ, ಈ ಹಂತಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿ:
• "Think Aloud" ವಿಧಾನವನ್ನು ಅಭ್ಯಾಸ ಮಾಡಿ. ನೀವು ಕೋಡ್ ಮಾಡುವಾಗ ನಿಮ್ಮ ತರ್ಕವನ್ನು (logic) ಜೋರಾಗಿ ವಿವರಿಸಿ. • AI ಸಿಮ್ಯುಲೇಶನ್ಗಳನ್ನು ಬಳಸಿ. ಇದು ನಿಮ್ಮ ಪ್ರತಿಕ್ರಿಯೆಯ ಸಮಯ ಮತ್ತು ಕೋಡ್ ಗುಣಮಟ್ಟದ ಬಗ್ಗೆ ವರದಿಗಳನ್ನು ನೀಡುತ್ತದೆ.
ಕಡಿಮೆ ಲೇಟೆನ್ಸಿ ಹೊಂದಿರುವ ವಾಯ್ಸ್ ಆಪ್ಗಳಿಗೆ ಆಡಿಯೋ ಕಂಪ್ರೆಷನ್ ಮತ್ತು ಸರ್ವರ್ ಪವರ್ ನಡುವೆ ಸಮತೋಲನ ಅಗತ್ಯವಿದೆ.
ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ಗಳಲ್ಲಿ ನೀವು ಆಡಿಯೋ ಸ್ಟ್ರೀಮಿಂಗ್ ಅನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುತ್ತೀರಿ? ನೀವು ಬ್ರೌಸರ್ನಲ್ಲಿ VAD ಮಾಡೆಲ್ಗಳನ್ನು ಬಳಸಿದ್ದೀರಾ?
ನಿಮ್ಮ ಅನಿಸಿಕೆಗಳನ್ನು ಕಾಮೆಂಟ್ಗಳಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿ.
ಐಚ್ಛಿಕ ಕಲಿಕಾ ಸಮುದಾಯ: https://t.me/GyaanSetuAi