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/ur/6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md

10 KiB

تقریر کا ترجمہ - راسپبیری پائی

اس سبق کے اس حصے میں، آپ مترجم سروس کا استعمال کرتے ہوئے متن کا ترجمہ کرنے کے لیے کوڈ لکھیں گے۔

مترجم سروس کا استعمال کرتے ہوئے متن کو تقریر میں تبدیل کریں

تقریر سروس REST API براہ راست ترجمے کی حمایت نہیں کرتی، لیکن آپ تقریر سے متن سروس کے ذریعے تیار کردہ متن اور بولے گئے جواب کے متن کا ترجمہ کرنے کے لیے مترجم سروس استعمال کر سکتے ہیں۔ اس سروس میں ایک REST API موجود ہے جسے آپ متن کا ترجمہ کرنے کے لیے استعمال کر سکتے ہیں۔

کام - مترجم وسائل کا استعمال کرتے ہوئے متن کا ترجمہ کریں

  1. آپ کے اسمارٹ ٹائمر میں 2 زبانیں سیٹ ہوں گی - وہ زبان جو LUIS کو تربیت دینے کے لیے استعمال کی گئی (یہی زبان صارف سے بات کرنے کے پیغامات بنانے کے لیے بھی استعمال ہوتی ہے)، اور وہ زبان جو صارف بولتا ہے۔ language ویری ایبل کو اپ ڈیٹ کریں تاکہ وہ زبان ہو جو صارف بولے گا، اور ایک نیا ویری ایبل server_language کے نام سے شامل کریں جو LUIS کو تربیت دینے کے لیے استعمال ہونے والی زبان کو ظاہر کرے:

    language = '<user language>'
    server_language = '<server language>'
    

    <user language> کو اس زبان کے لوکیل نام سے تبدیل کریں جس میں آپ بات کریں گے، مثلاً فرانسیسی کے لیے fr-FR یا کینٹونیز کے لیے zn-HK۔

    <server language> کو اس زبان کے لوکیل نام سے تبدیل کریں جو LUIS کو تربیت دینے کے لیے استعمال ہوئی۔

    آپ Microsoft Docs پر زبان اور آواز کی حمایت کی دستاویزات میں معاون زبانوں اور ان کے لوکیل ناموں کی فہرست دیکھ سکتے ہیں۔

    💁 اگر آپ کئی زبانیں نہیں بولتے تو آپ بنگ ٹرانسلیٹ یا گوگل ٹرانسلیٹ جیسی سروسز کا استعمال کر سکتے ہیں تاکہ اپنی پسندیدہ زبان سے کسی اور زبان میں ترجمہ کریں۔ یہ سروسز ترجمہ شدہ متن کی آڈیو بھی چلا سکتی ہیں۔

    مثال کے طور پر، اگر آپ نے LUIS کو انگریزی میں تربیت دی ہے لیکن صارف کی زبان کے طور پر فرانسیسی استعمال کرنا چاہتے ہیں، تو آپ جملوں جیسے "set a 2 minute and 27 second timer" کو انگریزی سے فرانسیسی میں بنگ ٹرانسلیٹ کے ذریعے ترجمہ کر سکتے ہیں، پھر Listen translation بٹن کا استعمال کرتے ہوئے ترجمہ کو اپنے مائیکروفون میں بول سکتے ہیں۔

    بنگ ٹرانسلیٹ پر Listen translation بٹن

  2. speech_api_key کے نیچے مترجم API کلید شامل کریں:

    translator_api_key = '<key>'
    

    <key> کو اپنے مترجم سروس وسائل کے API کلید سے تبدیل کریں۔

  3. say فنکشن کے اوپر ایک translate_text فنکشن ڈیفائن کریں جو متن کو سرور زبان سے صارف کی زبان میں ترجمہ کرے:

    def translate_text(text, from_language, to_language):
    

    اس فنکشن میں from اور to زبانیں پاس کی جاتی ہیں - آپ کی ایپ کو تقریر کو پہچاننے کے لیے صارف کی زبان سے سرور زبان میں تبدیل کرنا ہوگا، اور بولے گئے فیڈبیک کے لیے سرور زبان سے صارف کی زبان میں۔

  4. اس فنکشن کے اندر REST API کال کے لیے URL اور ہیڈرز ڈیفائن کریں:

    url = f'https://api.cognitive.microsofttranslator.com/translate?api-version=3.0'
    
    headers = {
        'Ocp-Apim-Subscription-Key': translator_api_key,
        'Ocp-Apim-Subscription-Region': location,
        'Content-type': 'application/json'
    }
    

    اس API کا URL مقام کے لحاظ سے مخصوص نہیں ہے، بلکہ مقام کو ہیڈر کے طور پر پاس کیا جاتا ہے۔ API کلید کو براہ راست استعمال کیا جاتا ہے، اس لیے تقریر سروس کے برعکس ٹوکن جاری کرنے والے API سے ایکسیس ٹوکن حاصل کرنے کی ضرورت نہیں۔

  5. اس کے نیچے کال کے لیے پیرامیٹرز اور باڈی ڈیفائن کریں:

    params = {
        'from': from_language,
        'to': to_language
    }
    
    body = [{
        'text' : text
    }]
    

    params ان پیرامیٹرز کو ڈیفائن کرتا ہے جو API کال کو پاس کیے جائیں گے، from اور to زبانوں کو پاس کرتے ہوئے۔ یہ کال from زبان میں متن کو to زبان میں ترجمہ کرے گی۔

    body میں ترجمہ کرنے کے لیے متن شامل ہوتا ہے۔ یہ ایک ارے ہے، کیونکہ ایک ہی کال میں کئی متن کے بلاکس کا ترجمہ کیا جا سکتا ہے۔

  6. REST API کو کال کریں اور جواب حاصل کریں:

    response = requests.post(url, headers=headers, params=params, json=body)
    

    جوابی JSON ارے کی شکل میں واپس آتا ہے، جس میں ایک آئٹم شامل ہوتا ہے جو ترجمے پر مشتمل ہوتا ہے۔ اس آئٹم میں ان تمام آئٹمز کے ترجمے کے لیے ایک ارے ہوتا ہے جو باڈی میں پاس کیے گئے ہیں۔

    [
        {
            "translations": [
                {
                    "text": "Set a 2 minute 27 second timer.",
                    "to": "en"
                }
            ]
        }
    ]
    
  7. ارے میں پہلے آئٹم کے پہلے ترجمے سے test پراپرٹی کو واپس کریں:

    return response.json()[0]['translations'][0]['text']
    
  8. while True لوپ کو اپ ڈیٹ کریں تاکہ convert_speech_to_text کال سے متن کو صارف کی زبان سے سرور زبان میں ترجمہ کرے:

    if len(text) > 0:
        print('Original:', text)
        text = translate_text(text, language, server_language)
        print('Translated:', text)
    
        message = Message(json.dumps({ 'speech': text }))
        device_client.send_message(message)
    

    یہ کوڈ کنسول پر متن کے اصل اور ترجمہ شدہ ورژنز کو بھی پرنٹ کرتا ہے۔

  9. say فنکشن کو اپ ڈیٹ کریں تاکہ سرور زبان سے صارف کی زبان میں کہنے کے لیے متن کا ترجمہ کرے:

    def say(text):
        print('Original:', text)
        text = translate_text(text, server_language, language)
        print('Translated:', text)
        speech = get_speech(text)
        play_speech(speech)
    

    یہ کوڈ کنسول پر متن کے اصل اور ترجمہ شدہ ورژنز کو بھی پرنٹ کرتا ہے۔

  10. اپنا کوڈ چلائیں۔ یقینی بنائیں کہ آپ کا فنکشن ایپ چل رہی ہے، اور صارف کی زبان میں ٹائمر کی درخواست کریں، یا تو خود وہ زبان بول کر، یا ترجمہ ایپ کا استعمال کرتے ہوئے۔

    pi@raspberrypi:~/smart-timer $ python3 app.py
    Connecting
    Connected
    Using voice fr-FR-DeniseNeural
    Original: Définir une minuterie de 2 minutes et 27 secondes.
    Translated: Set a timer of 2 minutes and 27 seconds.
    Original: 2 minute 27 second timer started.
    Translated: 2 minute 27 seconde minute a commencé.
    Original: Times up on your 2 minute 27 second timer.
    Translated: Chronométrant votre minuterie de 2 minutes 27 secondes.
    

    💁 مختلف زبانوں میں کچھ کہنے کے مختلف طریقوں کی وجہ سے، آپ کو ایسے ترجمے مل سکتے ہیں جو LUIS کو دیے گئے مثالوں سے تھوڑے مختلف ہوں۔ اگر ایسا ہو تو LUIS میں مزید مثالیں شامل کریں، دوبارہ تربیت دیں اور ماڈل کو دوبارہ شائع کریں۔

💁 آپ اس کوڈ کو code/pi فولڈر میں تلاش کر سکتے ہیں۔

😀 آپ کا کثیر لسانی ٹائمر پروگرام کامیاب رہا!


ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔