# വാചകം മുതൽ എഴുത്ത് - വെർച്വൽ ഐഒടി ഡിവൈസ് പാഠത്തിന്റെ ഈ ഭാഗത്തിൽ, നിങ്ങളുടെ മൈക്രോഫോണിൽ നിന്നു ശബ്ദം എടുക്കുകയും അത് വാചക സേവനം ഉപയോഗിച്ച് എഴുത്തായി മാറ്റുകയും ചെയ്യുന്ന കോഡ് എഴുതും. ## വാചകത്തെ എഴുത്താക്കി മാറ്റുക Windows, Linux, macOS എന്നിവയിൽ, വാചക സേവനങ്ങളുടെ Python SDK ഉപയോഗിച്ച് നിങ്ങളുടെ മൈക്രോഫോൺ കേൾക്കാനും കണ്ടെത്തിയ ഏതെങ്കിലും വാചകത്തെയും എഴുത്തായി മാറ്റാനുമാകും. ഇത് തുടർച്ചയായി കേൾക്കും, ശബ്ദതലങ്ങളിൽ ശ്രദ്ധേയമായി അവയെ കണ്ടെത്തുകയും, ശബ്ദതലം താഴുമ്ബോൾ, ഉദാഹരണത്തിന് വാചകത്തിന്റെ അവസാനത്തിലും, വാചകം എഴുത്തായി മാറ്റുന്നതിനായി അയക്കും. ### ടാസ്ക് - വാചകത്തെ എഴുത്താക്കി മാറ്റുക 1. നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ `smart-timer` എന്ന ഫോൾഡറിൽ പുതിയ Python ആപ്പ് സൃഷ്ടിക്കുക, `app.py` എന്ന ഒറ്റ ഫയലോടുകൂടി, കൂടാതെ Python വെർച്വൽ എൻവയോൺമെന്റും ഉണ്ടാകണം. 1. വാചക സേവനങ്ങളുടെ പിപ്പ് പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുക. വെർച്വൽ എന്‍വയോണ്‍മെന്റ് സജീവമാക്കിയിട്ടുള്ള ടെർമിനൽ വഴിയാണ് ഇത് ഇൻസ്റ്റാൾ ചെയ്യുന്നത് എന്ന് ഉറപ്പാക്കുക. ```sh pip install azure-cognitiveservices-speech ``` > ⚠️ നിങ്ങൾക്ക് താഴെക്കാണുന്ന പിശക് വന്നാൽ: > > ```output > ERROR: Could not find a version that satisfies the requirement azure-cognitiveservices-speech (from versions: none) > ERROR: No matching distribution found for azure-cognitiveservices-speech > ``` > > നിങ്ങൾക്ക് പിപ്പ് അപ്ഡേറ്റ് ചെയ്യേണ്ടി വരും. താഴെ കൊടുത്ത കമാൻഡ് ഉപയോഗിച്ച് അത് ചെയ്യുക, ശേഷം പാക്കേജ് വീണ്ടും ഇൻസ്റ്റാൾ ചെയ്യാൻ ശ്രമിക്കുക > > ```sh > pip install --upgrade pip > ``` 1. `app.py` ഫയലിൽ താഴെ കാണുന്ന ഇംപോർട്ടുകൾ ചേർക്കുക: ```python import requests import time from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer ``` വാചകം തിരിച്ചറിയാനുപയോഗിക്കുന്ന ചില ക്ലാസ്സുകൾ ഇതിലൂടെ ഇറക്കുമതി ചെയ്യുന്നു. 1. ചില കോൺഫിഗറേഷൻകൾ പ്രഖ്യാപിക്കാൻ താഴെ കാണുന്ന കോഡ് ചേർക്കുക: ```python speech_api_key = '' location = '' language = '' recognizer_config = SpeechConfig(subscription=speech_api_key, region=location, speech_recognition_language=language) ``` ``-ന്റെ സ്ഥലം നിങ്ങളുടെ വാചക സേവനത്തിന് നൽകിയ എപി കീ ഉപയോഗിച്ച് മാറ്റുക. ``-ന്റെ സ്ഥലം, വാചക സേവന റിസോഴ്‌സ് സൃഷ്ടിച്ചപ്പോൾ ഉപയോഗിച്ച സ്ഥലത്തിന്റെ പേരുചേർത്ത് മാറ്റുക. നിങ്ങൾ സംസാരിക്കാൻ പോകുന്ന ഭാഷയ്ക്ക് അനുസൃതമായ ലോക്കൽ നാമം ``-ന്റെ സ്ഥാനം മാറ്റുക, ഉദാഹരണത്തിന് ഇംഗ്ലീഷിനായി `en-GB` അല്ലെങ്കിൽ കാന്തോണീസ് ചൈനീസ് ഹോങ് കോങ്കിൽപോലെ `zn-HK`. മൈക്രോസോഫ്റ്റ് ഡോക്സിലെ [ഭാഷയും ശബ്ദ സഹായവും](https://docs.microsoft.com/azure/cognitive-services/speech-service/language-support?WT.mc_id=academic-17441-jabenn#speech-to-text) ലിസ്റ്റിൽ സപ്പോർട്ട് ചെയ്യുന്ന ഭാഷകളും അവയുടെ ലോക്കൽ നാമവും കണ്ടെത്താവുന്നതാണ്. ഈ കോൺഫിഗറേഷൻ ഉപയോഗിച്ച് `SpeechConfig` ഓബ്ജക്റ്റ് ഉണ്ടാകുകയും അത് വാചക സേവനങ്ങളിലേക്കു കോൺഫിഗർ ചെയ്യാൻ ഉപയോഗിക്കും. 1. സ്പീച്ച് റികഗ്നൈസർ ഉണ്ടാക്കാൻ താഴെ കാണുന്നതുപോലെ കോഡ് ചേർക്കുക: ```python recognizer = SpeechRecognizer(speech_config=recognizer_config) ``` 1. സ്പീച്ച് റികഗ്നൈസർ ബാക്ക്ഗ്രൗണ്ട് ത്രെഡ് ആയി പ്രവർത്തിച്ചുകൊണ്ട് ശബ്ദം കേൾക്കും, അതിലുള്ള വാചകത്തെ എഴുത്തായി മാറ്റും. നിങ്ങൾ നിർവചിച്ച് റികഗ്നൈസറിലേക്ക് പാസ്സുചെയ്യുന്ന കോൾബാക്ക് ഫംഗ്ഷൻ ഉപയോഗിച്ച് എഴുത്ത് നേടാം. വാചകം കണ്ടെത്തുമ്പോൾ ആ കോൾബാക്ക് വിളിക്കും. കോൾബാക്ക് നിർവചിക്കുകയും അത് റികഗ്നൈസറിലേക്ക് പാസ്സുചെയ്യുകയും, എഴുത്ത് പ്രോസസ്സ് ചെയ്ത് കോൺസോളിൽ എഴുതുന്ന ഒരു ഫംഗ്ഷൻ നിർവചിക്കുകയും താഴെ കാണുന്ന കോഡ് ചേർക്കുക: ```python def process_text(text): print(text) def recognized(args): process_text(args.result.text) recognizer.recognized.connect(recognized) ``` 1. റികഗ്നൈസർ നിങ്ങളാല് വ്യക്തമാക്കാതെ കേൾക്കാൻ തുടങ്ങുകയില്ല. ഷെല്ലിൽ റികഗ്നിഷൻ ആരംഭിക്കാൻ താഴെ കാണുന്ന കോഡ് ചേർക്കുക. ഇത് ബാക്ക്ഗ്രൗണ്ടിൽ പ്രവർത്തിക്കും, ആപ്പ് പ്രവർത്തിപ്പിക്കാൻ അനന്ത ലൂപ് സ്ലീപ്പ് ഉപയോഗിച്ച് ആപ്പ് ഓണുള്ളതാക്കണമെന്നതും നിർബന്ധമാണ്. ```python recognizer.start_continuous_recognition() while True: time.sleep(1) ``` 1. ഈ ആപ്പ് റൺ ചെയ്യുക. നിങ്ങളുടെ മൈക്രോഫോണിലേക്ക് സംസാരിക്കുക, ശബ്ദം എഴുത്തായി പരിവർത്തനം ചെയ്ത് കോൺസോളിൽ കാണിക്കപ്പെടും. ```output (.venv) ➜ smart-timer python3 app.py Hello world. Welcome to IoT for beginners. ``` വ്യത്യസ്ത തരത്തിലായ വാചകങ്ങൾ പരീക്ഷിക്കുക, ഒരേ ശബ്ദമുള്ള പക്ഷേ അർത്ഥം വ്യത്യസ്തമായ വാക്കുകൾ ഉൾപ്പെടുന്നവയും. ഉദാഹരണത്തിന്, ഇംഗ്ലീഷിലാണെങ്കിൽ 'I want to buy two bananas and an apple too' എന്ന് പറയുമ്പോൾ, ഈ വാക്കുകളുടെ അർത്ഥത്തെ അടിസ്ഥാനമാക്കി ശരിയായ to, two, too വാക്കുകൾ ഉപയോഗിക്കുന്നത് ശ്രദ്ധിക്കുക. > 💁 ഈ കോഡ് [code-speech-to-text/virtual-iot-device](../../../../../6-consumer/lessons/1-speech-recognition/code-speech-to-text/virtual-iot-device) ഫോൾഡറില്‍ കണ്ടെത്താം. 😀 നിങ്ങളുടെ വാചകത്തിന്റെ എഴുത്തിലേക്ക് പരിവർത്തന പ്രോഗ്രാം വിജയകരമായി പൂർത്തിയായി! --- **അസ്വീകാര്യപ്പെടുത്തൽ**: ഈ ദസ്താവേശം AI പരിഭാഷ സേവനം [കോ-ഓപ് ട്രാൻസ്ലേറ്റർ](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് വിവർഥനം ചെയ്തിട്ടുള്ളതാണ്. നാം കൃത്യതക്ക് চেষ্টা ചെയ്യുന്നുവെങ്കിലും, സ്വയം പ്രവർത്തിക്കുന്ന വിവർത്തനങ്ങളിൽ പിഴവുകൾ കൂടിയുണ്ടാകാനുള്ള സാധ്യതയുണ്ട്. അത്തരം പിശകുകളുള്ളതും മാറ്റങ്ങളുള്ളതുമായ വിവർത്തനങ്ങളേക്കാൾ, ഒരു ഭാഷയുടെ മാതൃഭാഷയിൽ ഉള്ള മൗലിക ദസ്താവേശം അംഗീകൃത ഉറവിടമായി കരുതപ്പെടണം. അത്യന്താപേക്ഷിത വിവരങ്ങൾക്കായി വിദഗ്ധ മനുഷ്യൻ എന്നുള്ള പരിഭാഷ നിർദേശിക്കുന്നു. ഈ വിവർത്തനം ഉപയോഗിച്ച് ഉണ്ടാകുന്ന തെറ്റിദ്ധാരണകൾക്കും മുന്‍പ് സൂചനകൾക്കും ഞങ്ങൾ ഉത്തരവാദിത്വം ഏറ്റെടുക്കുന്നില്ല.