رونویسی گفتار به متن با Cloud Speech-to-Text API

Cloud Speech API به شما امکان می دهد از فایل های صوتی به بیش از 80 زبان رونویسی گفتار به متن را انجام دهید.

در این آزمایشگاه یک فایل صوتی را ضبط کرده و برای رونویسی به Cloud Speech API ارسال می کنیم.

چیزی که یاد خواهید گرفت

  • ایجاد یک درخواست Speech API و فراخوانی API با curl
  • فراخوانی Speech API با فایل های صوتی به زبان های مختلف

آنچه شما نیاز دارید

چگونه از این آموزش استفاده خواهید کرد؟

فقط از طریق آن را بخوانید آن را بخوانید و تمرینات را کامل کنید

تجربه خود را با Google Cloud Platform چگونه ارزیابی می کنید؟

تازه کار حد واسط مسلط

تنظیم محیط خود به خود

اگر قبلاً یک حساب Google (Gmail یا Google Apps) ندارید، باید یک حساب ایجاد کنید . به کنسول Google Cloud Platform ( consol.cloud.google.com ) وارد شوید و یک پروژه جدید ایجاد کنید:

اسکرین شات از 10/02/2016 12:45:26.png

شناسه پروژه را به خاطر بسپارید، یک نام منحصر به فرد در تمام پروژه های Google Cloud (نام بالا قبلاً گرفته شده است و برای شما کار نخواهد کرد، متأسفیم!). بعداً در این آزمایشگاه کد به عنوان PROJECT_ID خواهد شد.

در مرحله بعد، برای استفاده از منابع Google Cloud، باید صورتحساب را در کنسول Cloud فعال کنید.

گذراندن این کد نباید بیش از چند دلار هزینه داشته باشد، اما اگر تصمیم به استفاده از منابع بیشتری داشته باشید یا اگر آنها را در حال اجرا رها کنید، ممکن است بیشتر باشد (به بخش "پاکسازی" در انتهای این سند مراجعه کنید).

کاربران جدید Google Cloud Platform واجد شرایط استفاده آزمایشی رایگان 300 دلاری هستند.

روی نماد منو در سمت چپ بالای صفحه کلیک کنید.

داشبورد APIs and Services را از منوی کشویی انتخاب کنید.

روی Enable APIs and Services کلیک کنید.

سپس، عبارت "گفتار" را در کادر جستجو جستجو کنید. روی Google Cloud Speech API کلیک کنید:

برای فعال کردن Cloud Speech API روی Enable کلیک کنید:

چند ثانیه صبر کنید تا فعال شود. وقتی فعال شد این را خواهید دید:

Google Cloud Shell یک محیط خط فرمان است که در Cloud اجرا می شود. این ماشین مجازی مبتنی بر دبیان با تمام ابزارهای توسعه مورد نیاز شما ( gcloud ، bq ، git و موارد دیگر) بارگذاری شده است و یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد. ما از Cloud Shell برای ایجاد درخواست خود به Speech API استفاده می کنیم.

برای شروع کار با Cloud Shell، روی "فعال کردن Google Cloud Shell" کلیک کنید. اسکرین شات 08/06/2015 در ساعت 5.30.32 بعد از ظهر.png نماد در گوشه سمت راست بالای نوار هدر

یک جلسه Cloud Shell در داخل یک فریم جدید در پایین کنسول باز می شود و یک خط فرمان را نمایش می دهد. صبر کنید تا اعلان user@project:~$ ظاهر شود

از آنجایی که از curl برای ارسال درخواست به Speech API استفاده می‌کنیم، باید یک کلید API ایجاد کنیم تا در URL درخواست ما ارسال شود. برای ایجاد یک کلید API، به بخش APIs & Services > Credentials در داشبورد پروژه خود بروید:

سپس روی Create credentials کلیک کنید:

در منوی کشویی، کلید API را انتخاب کنید:

در مرحله بعد، کلیدی را که ایجاد کرده اید کپی کنید و Close را انتخاب کنید (کلید را محدود نکنید).

اکنون که یک کلید API دارید، آن را در یک متغیر محیطی ذخیره کنید تا از وارد کردن مقدار کلید API خود در هر درخواست اجتناب کنید. می توانید این کار را در Cloud Shell انجام دهید. حتماً کلیدی را که به تازگی کپی کردید جایگزین <your_api_key> کنید.

export API_KEY=<YOUR_API_KEY>

می توانید درخواست خود را در فایل request.json به API گفتار بسازید. برای ایجاد و ویرایش این فایل، می توانید از یکی از ویرایشگرهای خط فرمان ترجیحی خود (nano، vim، emacs) استفاده کنید یا از ویرایشگر وب داخلی در Cloud Shell استفاده کنید:

فایل را در فهرست اصلی خود ایجاد کنید تا بتوانید به راحتی به آن ارجاع دهید و موارد زیر را به فایل request.json خود اضافه کنید:

request.json

{
  "config": {
      "encoding":"FLAC",
      "languageCode": "en-US"
  },
  "audio": {
      "uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
  }
}

بدنه درخواست دارای یک config و شیء audio است. در config ، ما به Speech API می گوییم که چگونه درخواست را پردازش کند. پارامتر encoding به API می گوید که از کدام نوع رمزگذاری صوتی برای فایل صوتی که به API ارسال می کنید استفاده می کنید. FLAC نوع رمزگذاری برای فایل‌های خام است (برای جزئیات بیشتر به اسناد نوع کدگذاری مراجعه کنید). پارامترهای دیگری نیز وجود دارد که می توانید به شی config خود اضافه کنید، اما encoding تنها مورد مورد نیاز است. اگر از درخواست خارج شود languageCode به طور پیش فرض به انگلیسی خواهد بود.

در شیء audio ، می توانید API را یا uri فایل صوتی ما در Cloud Storage یا صدای کدگذاری شده base64 را به عنوان یک رشته ارسال کنید. در اینجا از آدرس‌های اینترنتی ذخیره‌سازی ابری استفاده می‌شد. مرحله بعدی فراخوانی Speech API است!

اکنون می‌توانید بدنه درخواست خود را همراه با متغیر محیطی کلید API که قبلاً ذخیره کرده‌اید، با دستور curl زیر به Speech API ارسال کنید (همه در یک خط فرمان واحد):

curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"

پاسخی که توسط این دستور curl برگردانده می شود باید چیزی شبیه به زیر باشد:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "how old is the Brooklyn Bridge",
          "confidence": 0.98267895
        }
      ]
    }
  ]
}

مقدار transcript رونویسی متنی Speech API از فایل صوتی شما را برمی گرداند و مقدار confidence نشان می دهد که API چقدر مطمئن است که صدای شما را به طور دقیق رونویسی کرده است.

متوجه خواهید شد که ما متد recognize را در درخواست خود در بالا فراخوانی کردیم. Speech API از رونویسی گفتار به متن به صورت همزمان و ناهمزمان پشتیبانی می کند. در این مثال ما یک فایل صوتی کامل را برای آن ارسال کردیم، اما شما همچنین می توانید از روش longrunningrecognize برای انجام انتقال جریان گفتار به متن در حالی که کاربر هنوز در حال صحبت است استفاده کنید.

آیا شما چند زبانه هستید؟ Speech API از رونویسی گفتار به متن در بیش از 100 زبان پشتیبانی می کند! می توانید پارامتر languageCode را در request.json تغییر دهید. می‌توانید فهرستی از زبان‌های پشتیبانی‌شده را در اینجا پیدا کنید.

بیایید یک فایل صوتی فرانسوی را امتحان کنیم (اگر مایل به پیش نمایش آن هستید اینجا آن را گوش کنید). درخواست.json خود را به صورت زیر تغییر دهید:

request.json

 {
  "config": {
      "encoding":"FLAC",
      "languageCode": "fr"
  },
  "audio": {
      "uri":"gs://speech-language-samples/fr-sample.flac"
  }
}

شما باید پاسخ زیر را ببینید:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
          "confidence": 0.9710122
        }
      ]
    }
  ]
}

این جمله ای از یک داستان محبوب کودکان فرانسوی است. اگر فایل‌های صوتی به زبان دیگری دارید، می‌توانید آنها را به Cloud Storage اضافه کنید و پارامتر languageCode را در درخواست خود تغییر دهید.

شما یاد گرفته اید که چگونه با Speech API رونویسی گفتار به متن را انجام دهید. در این مثال شما API را به Google Cloud Storage URI فایل صوتی خود منتقل کردید. همچنین، می توانید یک رشته رمزگذاری شده base64 از محتوای صوتی خود را ارسال کنید.

آنچه را پوشش داده ایم

  • ارسال Speech API یک URI Google Cloud Storage یک فایل صوتی
  • ایجاد یک درخواست Speech API و فراخوانی API با curl
  • فراخوانی Speech API با فایل های صوتی به زبان های مختلف

مراحل بعدی