You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/km/6-consumer/lessons/3-spoken-feedback/virtual-device-text-to-spee...

9.7 KiB

អត្ថបទ​ទៅ​សំឡេង - ឧបករណ៍ IoT ខាងវីឌ្យូ

ក្នុង​ផ្នែក​នេះ​នៃមេរៀន អ្នក​នឹង​សរសេរកូដ​ដំណើរការ​បម្លែង​អត្ថបទ​ទៅ​សំឡេង ដោយ​ប្រើ​សេវាកម្ម​សំឡេង។

បម្លែង​អត្ថបទ​ទៅ​សំឡេង

SDK សេវាកម្ម​សំឡេង​ដែល​អ្នក​បាន​ប្រើ​ក្នុង​មេរៀន​មុន​ដើម្បី​បម្លែង​សំឡេង​ទៅអត្ថបទ អាច​ប្រើ​ដើម្បី​បម្លែង​អត្ថបទ​ត្រឡប់វិញ​ទៅ​សំឡេង។ នៅពេល​ស្នើសុំ​សំឡេង អ្នក​ត្រូវ​ផ្តល់​អង្គធាតុ​សំឡេង​ដើម្បី​ប្រើ ព្រោះ​សំឡេង​អាច​ត្រូវបាន​បង្កើត​ដោយប្រើ​អង្គធាតុ​សំឡេង​ផ្សេងៗ​ជា​ច្រើន​។

រៀងរាល់​ភាសា​គាំទ្រ​អង្គធាតុ​សំឡេង​ផ្សេងៗ ហើយ​អ្នក​អាច​ទទួលបាន​បញ្ជី​អង្គធាតុ​សំឡេង​ដែល​គាំទ្រ​សម្រាប់ភាសារ​នីមួយៗ​ពី SDK សេវាកម្ម​សំឡេង។

ភារកិច្ច - បម្លែង​អត្ថបទ​ទៅ​សំឡេង

  1. បើក​គម្រោង smart-timer នៅ​ក្នុង VS Code ហើយប្រាកដថាបរិយាកាសយន្ត_virtual បាន​ផ្ទុក​នៅ​ក្នុង​ទ терминال។

  2. អនុញ្ញាត​ឲ្យ​អ្នកអញ្ញាតាំន SpeechSynthesizer ពី​បណ្ដុំ​ម៉ូឌុល azure.cognitiveservices.speech ដោយ​បូក​បញ្ចូល​វា​ក្នុង​ការ​នាំ​ចូល​ដែល​មាន​រួច​ហើយ៖

    from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer, SpeechSynthesizer
    
  3. ខាង​លើ​មុខងារ say សូម​បង្កើត​ការកំណត់​សំឡេង​សម្រាប់​ប្រើ​ជាមួយ speech synthesizer៖

    speech_config = SpeechConfig(subscription=speech_api_key,
                                 region=location)
    speech_config.speech_synthesis_language = language
    speech_synthesizer = SpeechSynthesizer(speech_config=speech_config)
    

    នេះ​ប្រើកន្លែង API key, ទីតាំង និងភាសា​ដដែល​ដែល​បាន​ប្រើ​ដោយ recognizer ។

  4. ខាង​ក្រោម​នេះ បន្ថែម​កូដ​ខាង​ក្រោម​ដើម្បី​ទទួល​អង្គធាតុ​សំឡេង​មួយ ហើយ​កំណត់​វា​លើ​ការកំណត់​សំឡេង៖

    voices = speech_synthesizer.get_voices_async().get().voices
    first_voice = next(x for x in voices if x.locale.lower() == language.lower())
    speech_config.speech_synthesis_voice_name = first_voice.short_name
    

    វា​យក​បញ្ជី​អង្គធាតុ​សំឡេង​ទាំងអស់​ដែលអាចប្រើបាន ហើយ​រក​អង្គធាតុ​សំឡេង​ដំបូង​ដែល​ផ្គូផ្គង​ជាមួយ​ភាសា​ដែល​កំពុង​ប្រើ។

    💁 អ្នក​អាច​ទាញ​យក​បញ្ជី​ពេញលេញ​នៃ​អង្គធាតុ​សំឡេង​ដែល​គាំទ្រ​បាន​ពី ឯកសារ Language and voice support documentation on Microsoft Docs។ ប្រសិនបើ​ចង់​ប្រើ​អង្គធាតុ​សំឡេង​ពិសេស​មួយ អ្នក​អាច​ដក​រាល់​មុខងារ​នេះចេញ ហើយ​កំណត់​អង្គធាតុ​សំឡេង​ដោយ​ដៃ​ដោយ​ប្រើ​ឈ្មោះ​សំឡេង​ពីឯកសារ​នេះ។ ឧទាហរណ៍៖

    speech_config.speech_synthesis_voice_name = 'hi-IN-SwaraNeural'
    
  5. បន្ទាប់​មក​វាយបញ្ជូល​មាតិកា​នៃ​មុខងារ say ដើម្បី​បង្កើត SSML សម្រាប់​តបតទៅ៖

    ssml =  f'<speak version=\'1.0\' xml:lang=\'{language}\'>'
    ssml += f'<voice xml:lang=\'{language}\' name=\'{first_voice.short_name}\'>'
    ssml += text
    ssml += '</voice>'
    ssml += '</speak>'
    
  6. ខាង​ក្រោម​នេះ ពង្រឹង​ការទទួល​សំឡេង​ឲ្យ​ឈប់ ពោល​សំឡេង SSML ទើប​ចាប់ផ្ដើម​ការ​ទទួល​សំឡេង​ម្ដង​ទៀត៖

    recognizer.stop_continuous_recognition()
    speech_synthesizer.speak_ssml(ssml)
    recognizer.start_continuous_recognition()
    

    ការទទួល​សំឡេង​ត្រូវ​បាន​ឈប់នៅពេល​ដែល​អត្ថបទ​ត្រូវ​បកប្ដូរ​ទៅ​សំឡេង ដើម្បី​ឱ្យ​ការប្រកាស​ថា​ឧបករណ៍​កំណត់​ពេល​វេលា​បាន​ចាប់ផ្ដើម មិន​ត្រូវ​បាន​គេ​ឮ​ឃើញ សំឡេង​ដែល​ផ្ញើ​ទៅ LUIS ហើយ​អាច​ត្រូវ​បាន​បកស្រាយ​ថា​គឺជា​សំណើ​ឱ្យ​កំណត់​ឧបករណ៍​ពេល​វេលា​ថ្មី។

    💁 អ្នក​អាច​សាកល្បង​នេះ​ដោយ​ការ​សរសេរ​ជាកំណត់ ឬ ការដក​បន្ទាត់​ដែល​ឈប់ និង​ចាប់ផ្ដើម​ការ​ទទួល​សំឡេង​ម្ដងទៀត។ កំណត់​ឧបករណ៍​ពេល​វេលា​មួយ ហើយ​អ្នក​អាច​សង្កេត​ឃើញ​ការ​ប្រកាស​កំណត់​ឧបករណ៍​ពេល​វេលា​ថ្មី ដែល​នាំ​រួច​ទៅ​ការ​ប្រកាស​ថ្មី​នាំឲ្យ​មាន​ការកំណត់​ឧបករណ៍​ពេល​វេលា​ថ្មី ហើយបន្ត​តទៅបន្ត​មក​ជានិច្ច!

  7. ដំណើរការ​កម្មវិធី ហើយ​ប្រាកដ​ថា​មុខងារ app កំពុង​ដំណើរការ​ផងដែរ។ កំណត់​ឧបករណ៍​ពេល​វេលា​មួយ​ចំនួន ហើយ​អ្នក​នឹង​ស្តាប់​ការ​ទទួល​សំឡេង​ថា​ការកំណត់​ឧបករណ៍​ពេល​វេលា​របស់​អ្នក​ត្រូវ​បាន​ដំណើរការ រួច​ក៏​មាន​ការ​ទទួល​សំឡេង​ម្តង​ទៀត​ពេល​ឧបករណ៍​ពេល​វេលា​ដំណើរការសម្រេច។

💁 អ្នក​អាច​រកឃើញ​កូដ​នេះ​នៅក្នុងថត code-spoken-response/virtual-iot-device

😀 កម្មវិធី​កំណត់​ពេល​វេលា​របស់​អ្នក​បាន​ជោគជ័យ!


ការបដិសេធ
ឯកសារនេះត្រូវបានប្រែសម្រួលដោយប្រព័ន្ធបកប្រែ AI Co-op Translator។ បើទោះបីយើងខិតខំប្រឹងប្រែងក្នុងការជាក់លាក់ ក៏សូមយកចិត្តទុកដាក់ថា ការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុសឬច្រឡំ។ ឯកសារដើមក្នុងភាសាទីតាំងរបស់វាគួរត្រូវបានចាត់ទុកជាវិទ្យាសាស្ត្រដែលមានអានុភាព។ សម្រាប់ព័ត៌មានមានសារៈសំខាន់ ការប្រែសម្រួលដោយអ្នកជំនាញមនុស្សគឺផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសត្រូវណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។