# ಟೈಮರ್ ಸೆಟ್ ಮಾಡಿ - Wio ಟರ್ಮಿನಲ್ ಪಾಠದ ಈ ಭಾಗದಲ್ಲಿ, ನೀವು ಮಾತನಾಡಿದ ಮಾತನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ನಿಮ್ಮ ಸರ್ವರ್‌ಲೆಸ್ ಕೋಡ್ ಅನ್ನು ಕರೆಮಾಡುತ್ತೀರಿ ಮತ್ತು ಫಲಿತಾಂಶಗಳ ಆಧಾರದ ಮೇಲೆ ನಿಮ್ಮ Wio ಟರ್ಮಿನಲ್‌ನಲ್ಲಿ ಟೈಮರ್ ಅನ್ನು ಸೆಟ್ ಮಾಡುತ್ತೀರಿ. ## ಟೈಮರ್ ಸೆಟ್ ಮಾಡುವುದು Speech to text ಕರೆಮಾಡಿ ಬಂದ ಪಠ್ಯವನ್ನು ನಿಮ್ಮ ಸರ್ವರ್‌ಲೆಸ್ ಕೋಡ್‌ಗೆ ಕಳುಹಿಸುವ ಅಗತ್ಯವಿದೆ, ಅದನ್ನು LUIS ಮೂಲಕ ಪ್ರಕ್ರಿಯೆ ಮಾಡಿ, ಟೈಮರ್‌ನ ಸೆಕೆಂಡುಗಳ ಸಂಖ್ಯೆಯನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತವೆ. ಈ ಸೆಕೆಂಡುಗಳ ಸಂಖ್ಯೆಯನ್ನು ಟೈಮರ್ ಅನ್ನು ಸೆಟ್ ಮಾಡಲು ಬಳಸಬಹುದು. ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್‌ಗಳು ಮೂಲತಃ Arduino ನಲ್ಲಿ ಬಹು-ಥ್ರೆಡ್‌ಗಳನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ Python ಅಥವಾ ಇತರ ಮೇಲ್ಅಂಗೀಕೃತ ಭಾಷೆಗಳಂತೆಯೇ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಟೈಮರ್ ಕ್ಲಾಸ್‌ಗಳು ಇರುವುದಿಲ್ಲ. ಬದಲಾಗಿ ನೀವು `loop` ಫಂಕ್ಷನ್‌ನಲ್ಲಿ ಕಳೆದ ಸಮಯವನ್ನು ಅಳೆಯುವ ಮೂಲಕ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಟೈಮರ್ ಲೈಬ್ರರಿಗಳನ್ನು ಬಳಸಿ, ಸಮಯ ಮುಗಿದಾಗ ಕಾರ್ಯಗಳನ್ನು ಕರೆ ಮಾಡಬಹುದು. ### ಕಾರ್ಯ - ಪಠ್ಯವನ್ನು ಸರ್ವರ್‌ಲೆಸ್ ಫಂಕ್ಷನ್‌ಗೆ ಕಳುಹಿಸಿ 1. ನೀವು `smart-timer` ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು VS ಕೋಡ್‌ನಲ್ಲಿ ಈಗಾಗಲೇ ತೆರೆಯದಿದ್ದರೆ ತೆರೆಯಿರಿ. 1. `config.h` ಹೆಡರ್ ಫೈಲ್ ತೆರೆಯಿರಿ ಮತ್ತು ನಿಮ್ಮ ಫಂಕ್ಷನ್ ಆ್ಯಪ್ URL ಅನ್ನು ಸೇರಿಸಿ: ```cpp const char *TEXT_TO_TIMER_FUNCTION_URL = ""; ``` `` ಅನ್ನು ನಿಮ್ಮ ಫಂಕ್ಷನ್ ಆ್ಯಪ್‌ನ URL ರಿಂದ ಬದಲಾಯಿಸಿ, ಇದು ಕಳೆದ ಪಾಠದ ಕೊನೆಯ ಹಂತದಲ್ಲಿ ಪಡೆದಿದ್ದು, ನಿಮ್ಮ ಲೋಕಲ್ ಮಷಿನ್‌ನ IP ವಿಳಾಸವನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಅದು ಫಂಕ್ಷನ್ ಆ್ಯಪ್ ಚಾಲನೆ ಮಾಡುತ್ತಿದೆ. 1. `src` ಫೋಲ್ಡರ್ ನಲ್ಲಿ `language_understanding.h` ಎಂಬ ಹೊಸ ಫೈಲ್ ಸೃಷ್ಟಿಸಿ. ಇದು ಗುರುತಿಸಿದ ಮಾತನಾಡುವ ಪಠ್ಯವನ್ನು ಸೆಕೆಂಡುಗಳಿಗೆ ಪರಿವರ್ತಿಸಲು LUIS ಬಳಸಿ ನಿಮ್ಮ ಫಂಕ್ಷನ್ ಆ್ಯಪ್‌ಗೆ ಕಳುಹಿಸಲು ವರ್ಗವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. 1. ಈ ಫೈಲ್‌ನ ಟಾಪ್‌ಗೆ ಕೆಳಗಿನ ವಿಷಯವನ್ನು ಸೇರಿಸಿ: ```cpp #pragma once #include #include #include #include #include "config.h" ``` ಇದು ಕೆಲವು ಅಗತ್ಯ ಹೆಡರ್ ಫೈಲ್‌ಗಳನ್ನು ಸೇರಿಸುತ್ತದೆ. 1. `LanguageUnderstanding` ಎಂಬ ವರ್ಗವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ ಮತ್ತು ಈ ವರ್ಗದ ಒಂದು ಉದಾಹರಣೆಯನ್ನು ಘೋಷಿಸಿ: ```cpp class LanguageUnderstanding { public: private: }; LanguageUnderstanding languageUnderstanding; ``` 1. ನಿಮ್ಮ ಫಂಕ್ಷನ್ ಆ್ಯಪ್ ಅನ್ನು ಕರೆಮಾಡಲು WiFi ಕ್ಲೈಂಟ್ ಅನ್ನು ಘೋಷಿಸುವ ಅಗತ್ಯವಿದೆ. ವರ್ಗದ `private` ವಿಭಾಗದಲ್ಲಿ ಕೆಳಗಿನುದನ್ನು ಸೇರಿಸಿ: ```cpp WiFiClient _client; ``` 1. `public` ವಿಭಾಗದಲ್ಲಿ, ಫಂಕ್ಷನ್ ಆ್ಯಪ್ ಅನ್ನು ಕರೆಮಾಡಲು `GetTimerDuration` ಎಂಬ ವಿಧಾನವನ್ನು ಘೋಷಿಸಿ: ```cpp int GetTimerDuration(String text) { } ``` 1. `GetTimerDuration` ವಿಧಾನದಲ್ಲಿ, ಫಂಕ್ಷನ್ ಆ್ಯಪ್‌ಗೆ ಕಳುಹಿಸುವ JSON ಅನ್ನು ನಿರ್ಮಿಸಲು ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ಸೇರಿಸಿ: ```cpp DynamicJsonDocument doc(1024); doc["text"] = text; String body; serializeJson(doc, body); ``` ಇದು `GetTimerDuration` ವಿಧಾನಕ್ಕೆ ಪಠ್ಯವನ್ನು JSON ರಚನೆಗೆ ಪರಿವರ್ತಿಸುತ್ತದೆ: ```json { "text" : "" } ``` ಇಲ್ಲಿ `` ಎಂಬುದು ಫಂಕ್ಷನ್‌ಗೆ ಕಳುಹಿಸುವ ಪಠ್ಯ. 1. ಇದರ ಕೆಳಗೆ, ಫಂಕ್ಷನ್ ಆ್ಯಪ್ ಕರೆ ಮಾಡಲು ಈ ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ: ```cpp HTTPClient httpClient; httpClient.begin(_client, TEXT_TO_TIMER_FUNCTION_URL); int httpResponseCode = httpClient.POST(body); ``` ಇದು functions ಆ್ಯಪ್‌ಗೆ POST ವಿನಂತಿ ಮಾಡುತ್ತದೆ, JSON ದೇಹವನ್ನು ಕಳುಹಿಸಿ ಪ್ರತಿಕ್ರિયા ಕೋಡ್ ಪಡೆಯುತ್ತದೆ. 1. ಇದರ ಕೆಳಗೆ ಈ ಕೋಡ್ ಅನ್ನು ಸೇರಿಸಿ: ```cpp int seconds = 0; if (httpResponseCode == 200) { String result = httpClient.getString(); Serial.println(result); DynamicJsonDocument doc(1024); deserializeJson(doc, result.c_str()); JsonObject obj = doc.as(); seconds = obj["seconds"].as(); } else { Serial.print("Failed to understand text - error "); Serial.println(httpResponseCode); } ``` ಇದು ಪ್ರತಿಕ್ರಿಯಾ ಕೋಡ್ ಪರಿಶೀಲಿಸುತ್ತದೆ. 200 (ಯಶಸ್ವೀ) ಆಗಿದ್ದರೆ, ಪ್ರತಿಕ್ರಿಯಾ ದೇಹದಿಂದ ಸೆಕೆಂಡುಗಳ ಸಂಖ್ಯೆ ಪಡೆಯಲಾಗುತ್ತದೆ. ಇಲ್ಲದಿದ್ದಲ್ಲಿ ದೋಷವನ್ನು ಸೀರಿಯಲ್ ಮೊಂಡಿಟರ್ ಗೆ ಕಳುಹಿಸುತ್ತದೆ ಮತ್ತು ಸೆಕೆಂಡುಗಳ ಸಂಖ್ಯೆ 0 ಆಗಿರುತ್ತದೆ. 1. ಈ ವಿಧಾನದ ಕೊನೆಯಲ್ಲಿ HTTP ಸಂಪರ್ಕವನ್ನು ಮುಚ್ಚಲು ಮತ್ತು ಸೆಕೆಂಡುಗಳ ಸಂಖ್ಯೆಯನ್ನು ವಾಪಸು ನೀಡಲು ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ: ```cpp httpClient.end(); return seconds; ``` 1. `main.cpp` ಫೈಲ್‌ನಲ್ಲಿ ಈ ಹೊಸ ಹೆಡರ್ ಅನ್ನು ಸೇರಿಸಿ: ```cpp #include "speech_to_text.h" ``` 1. `processAudio` ವಿಧಾನದ ಕೊನೆಯಲ್ಲಿ, `GetTimerDuration` ವಿಧಾನವನ್ನು ಕರೆ ಮಾಡಿ ಟೈಮರ್ ಅವಧಿಯನ್ನು ಪಡೆಯಿರಿ: ```cpp int total_seconds = languageUnderstanding.GetTimerDuration(text); ``` ಇದು `SpeechToText` ವರ್ಗದಿಂದ ಬಂದ ಪಠ್ಯವನ್ನು ಟೈಮರ್ ಅವಧಿಗೆ ಅಗತ್ಯವಾದ ಸೆಕೆಂಡುಗಳ ಸಂಖ್ಯೆಗೆ ಪರಿವರ್ತಿಸುತ್ತದೆ. ### ಕಾರ್ಯ - ಟೈಮರ್ ಸೆಟ್ ಮಾಡುವುದು ಸೆಕೆಂಡುಗಳ ಸಂಖ್ಯೆಯನ್ನು ಟೈಮರ್ ಸೆಟ್ ಮಾಡಲು ಬಳಸಬಹುದು. 1. `platformio.ini` ಫೈಲ್‌ಗೆ ಕೆಳಗಿನ ಲೈಬ್ರರಿ ಅವಲಂಬನೆಯನ್ನು ಸೇರಿಸಿ ಟೈಮರ್ ಸೆಟ್ ಮಾಡಲು ಲೈಬ್ರರಿ ಸೇರಿಸಲು: ```ini contrem/arduino-timer @ 2.3.0 ``` 1. ಈ ಲೈಬ್ರರಿಗೆ `main.cpp` ಫೈಲ್‌ನಲ್ಲಿ include ನಿರ್ದೇಶನವನ್ನು ಸೇರಿಸಿ: ```cpp #include ``` 1. `processAudio` ವಿಧಾನದ ಮೇಲ್ಮೈಯಲ್ಲಿ ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ: ```cpp auto timer = timer_create_default(); ``` ಈ ಕೋಡ್ `timer` ಎಂಬ ಟೈಮರ್ ಅನ್ನು ಘೋಷಿಸುತ್ತದೆ. 1. ಇದರ ಕೆಳಗೆ, ಈ ಕೋಡ್ ಸೇರಿಸಿ: ```cpp void say(String text) { Serial.print("Saying "); Serial.println(text); } ``` ಈ `say` ಫಂಕ್ಷನ್ ಅಂತಿಮವಾಗಿ ಪಠ್ಯವನ್ನು ಮಾತನಾಡುವ್ಯವಸ್ಥೆಗೆ ಪರಿವರ್ತಿಸುತ್ತದೆ, ಆದರೆ ಈಗಿಗೆ ಇದನ್ನು ಸೀರಿಯಲ್ ಮೊಂಡಿಟರ್ ಗೆ ಪಠ್ಯವನ್ನು ಬರೆಯುತ್ತದೆ. 1. `say` ಫಂಕ್ಷನ್ ಕೆಳಗೆ, ಈ ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ: ```cpp bool timerExpired(void *announcement) { say((char *)announcement); return false; } ``` ಇದು ಟೈಮರ್ ಅವಧಿ ಮುಗಿದಾಗ ಕರೆಮಾಡಲಾಗುವ ಕಾರ್-ಬ್ಯಾಕ್ ಫಂಕ್ಷನ್. ಟೈಮರ್ ಸಮಯ ಮುಗಿದಾಗ ಹೇಳಬೇಕಾದ ಸಂದೇಶವನ್ನು ಪರಿಷ್ಕರಿಸಲಾಗುತ್ತದೆ. ಟೈಮರ್‌ಗಳು ಪುನರಾವರ್ತಿಸಬಹುದಾಗಿವೆ ಮತ್ತು ಈ ಕಾರ್ಯಾಚರಣೆ ಕಾರ್-ಬ್ಯಾಕ್ ಪ್ರತಿಕ್ರಿಯೆಯಿಂದ ನಿಯಂತ್ರಿಸಲ್ಪಡುತ್ತದೆ — ಇದು `false` ಅನ್ನು ವಾಪಸು ನೀಡುತ್ತದೆ, ಟೈಮರ್‌ ಮತ್ತೆ ಚಾಲನೆ ಆಗಬಾರದಂತೆ ಸೂಚಿಸಲು. 1. `processAudio` ವಿಧಾನದ ಕೊನೆಯಲ್ಲಿ ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ: ```cpp if (total_seconds == 0) { return; } int minutes = total_seconds / 60; int seconds = total_seconds % 60; ``` ಈ ಕೋಡ್ ಒಟ್ಟು ಸೆಕೆಂಡುಗಳ ಸಂಖ್ಯೆಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ, 0 ಇದ್ದರೆ ಕಾರ್ಯಾಚರಣೆ ಹಿಂತಿರುಗುತ್ತದೆ ಹಾಗಾಗಿ ಯಾವುದೇ ಟೈಮರ್ ಸೆಟ್ ಆಗುವುದಿಲ್ಲ. ನಂತರ ಒಟ್ಟು ಸೆಕೆಂಡುಗಳನ್ನು ನಿಮಿಷಗಳು ಮತ್ತು ಸೆಕೆಂಡುಗಳಿಗೆ ಪರಿವರ್ತಿಸುತ್ತದೆ. 1. ಈ ಕೋಡ್ ಕೆಳಗೆ, ಟೈಮರ್ ಆರಂಭಿಸಿದಾಗ ಹೇಳಬೇಕಾದ ಸಂದೇಶವನ್ನು ರಚಿಸಲು ಈ ಮುಂದಿನ ಕೋಡ್ ಸೇರಿಸಿ: ```cpp String begin_message; if (minutes > 0) { begin_message += minutes; begin_message += " minute "; } if (seconds > 0) { begin_message += seconds; begin_message += " second "; } begin_message += "timer started."; ``` 1. ಇದರ ಕೆಳಗೆ, ಟೈಮರ್ ಅವಧಿ ಮುಗಿದಾಗ ಹೇಳಬೇಕಾದ ಸಂದೇಶದ ಹೋಲಿಸಿದ ಕೋಡ್ ಸೇರಿಸಿ: ```cpp String end_message("Times up on your "); if (minutes > 0) { end_message += minutes; end_message += " minute "; } if (seconds > 0) { end_message += seconds; end_message += " second "; } end_message += "timer."; ``` 1. ಇದರ ನಂತರ, ಟೈಮರ್ ಪ್ರಾರಂಭ ಸಂದೇಶವನ್ನು ಹೇಳಿ: ```cpp say(begin_message); ``` 1. ಈ ಕಾರ್ಯಾಚರಣೆಯ ಕೊನೆಯಲ್ಲಿ, ಟೈಮರ್ ಪ್ರಾರಂಭಿಸಿ: ```cpp timer.in(total_seconds * 1000, timerExpired, (void *)(end_message.c_str())); ``` ಇದರಿಂದ ಟೈಮರ್ ಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ. ಟೈಮರ್ ಮಿಲಿಸೆಕೆಂಡುಗಳಲ್ಲಿ ಸೆಟ್ ಆಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಒಟ್ಟು ಸೆಕೆಂಡುಗಳನ್ನು 1,000 ರೊಂದಿಗೆ ಗುಣಿಸಬೇಕು ಮಿಲಿಸೆಕೆಂಡುಗಳಾಗಿ ಪರಿವರ್ತಿಸಲು. `timerExpired` ಫಂಕ್ಷನ್ ಕಾರ್-ಬ್ಯಾಕ್ ಆಗಿ ಪಾಸ್ ಆಗುತ್ತದೆ ಮತ್ತು `end_message` ಕಾರ್-ಬ್ಯಾಕ್‌ಗೆ_ARGUMENTS_ ಆಗಿ ಪಾಸ್ ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಕಾರ್-ಬ್ಯಾಕ್ ವೈ_void*_Argument ಗೆ ಮಾತ್ರ ಸ್ವೀಕಾರ, ಆದ್ದರಿಂದ ಸ್ಟ್ರಿಂಗ್ ಸರಿಯಾಗಿ ಪರಿವರ್ತಿಸಲಾಗುತ್ತದೆ. 1. ಕೊನೆಗೆ, ಟೈಮರ್ ಅನ್ನು *ಟಿಕ್* ಮಾಡಬೇಕು, ಮತ್ತು ಇದು `loop` ಫಂಕ್ಷನ್‌ನಲ್ಲಿ ಮಾಡಲಾಗುತ್ತದೆ. `loop` ಫಂಕ್ಷನ್ ಕೆಳಗೆ ಈ ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ: ```cpp timer.tick(); ``` 1. ಈ ಕೋಡ್ ಅನ್ನು ನಿರ್ಮಿಸಿ, ನಿಮ್ಮ Wio ಟರ್ಮಿನಲ್‌ಗೆ ಅಪ್‌ಲೋಡ್ ಮಾಡಿ ಮತ್ತು ಸೀರಿಯಲ್ ಮೊಂಡಿಟರ್ ಮೂಲಕ ಪರೀಕ್ಷಿಸಿ. ಸೀರಿಯಲ್ ಮೊಂಡಿಟರ್‌ನಲ್ಲಿ `Ready` ಅನ್ನು ನೋಡಿದ ನಂತರ C ಬಟನ್ (ಎಡ ಬದಿ, ಪವರ್ ಸ್ವಿಚ್‌ಗೆ ಅಕ್ಕಟ್ಟಾಗಿ) ಒತ್ತಿ ಮತ್ತು ಮಾತಾಡಿ. 4 ಸೆಕೆಂಡುಗಳ ಆಡಿಯೋ ಹಿಡಿಯೋದು, ಪಠ್ಯಕ್ಕೆ ಪರಿವರ್ತಿಸಲಾಗುವುದು, ನಂತರ ನಿಮ್ಮ ಫಂಕ್ಷನ್ ಆ್ಯಪ್‌ಗೆ ಕಳುಹಿಸಲಾಗುವುದು ಮತ್ತು ಟೈಮರ್ ಸೆಟ್ ಆಗುವುದು. ನಿಮ್ಮ ಫಂಕ್ಶನ್ ಆ್ಯಪ್ ಸ್ಥಳೀಯವಾಗಿ ಚಲಿಸುತ್ತಿರುವುದಾಗಿ ಖಚಿತಪಡಿಸಿಕೊಂಡಿರಿ. ನೀವು ಟೈಮರ್ ಪ್ರಾರಂಭವಾಗುವಾಗ ಮತ್ತು ಮುಗಿಯುವಾಗ ನೋಡಬಹುದು. ```output --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time --- More details at http://bit.ly/pio-monitor-filters --- Miniterm on /dev/cu.usbmodem1101 9600,8,N,1 --- --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- Connecting to WiFi.. Connected! Got access token. Ready. Starting recording... Finished recording Sending speech... Speech sent! {"RecognitionStatus":"Success","DisplayText":"Set a 2 minute and 27 second timer.","Offset":4700000,"Duration":35300000} Set a 2 minute and 27 second timer. {"seconds": 147} 2 minute 27 second timer started. Times up on your 2 minute 27 second timer. ``` > 💁 ಈ ಕೋಡ್ ಅನ್ನು [code-timer/wio-terminal](../../../../../6-consumer/lessons/3-spoken-feedback/code-timer/wio-terminal) ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಕಂಡುಹಿಡಿಯಬಹುದು. 😀 ನಿಮ್ಮ ಟೈಮರ್ ಪ್ರೋಗ್ರಾಂ ಯಶಸ್ವಿಯಾಗಿದೆ! --- **ತಡೆಬಿಡುವಿಕೆ**: ಈ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು AI ಅನುವಾದ ಸೇವೆಯಾದ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯನ್ನು ಸಾಧಿಸಲು ಪ್ರಯತ್ನಿಸುವುದಾದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ತಪ್ಪು ಮಾಹಿತಿ ಇರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿನ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತೆ. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಸಲಹೆ ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದದ ಬಳಕೆಯಿಂದ ಉಂಟಾದ ಯಾವುದೇ ದುರ್ಬೋಧನೆಗಳಿಗೆ ಅಥವಾ ತಾಲ್ಮೆಯ ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗಿರುವುದಿಲ್ಲ.