نحوه استفاده از API

سرویس تبدیل گفتار به متن ستون برای داشتن کیفیت و سرعت بالای پاسخ‌دهی، بر اساس فریمورک gRPC که مستقل از زبان برنامه‌نویسی‌ست، پیاده شده است و نسبت به REST تا ۱۰ برابر سریع‌تر است.

این فریمورک برای اکثر زبان‌های برنامه‌نویسی کتابخانه‌ای ارائه کرده است تا با استفاده از آن بتوان با سرویس، ارتباط برقرار کرد. لیست زبان‌های تحت پشتیبانی را می‌توانید در این لینک مشاهده کنید. برای پیاده‌سازی با استفاده از کتابخانه gRPC در زبان مد نظرتان کافیست طبق داکیومنت آن در سایت gRPC جلو بروید.

در ادامه مواردی که لازم است تا علاوه‌بر آن مستندات در نظر گرفته شوند توضیح داده شده‌اند:

۱- gRPC برای انتقال اطلاعات به‌صورت پیش‌فرض از protobuf استفاده می‌کند. بنابراین نیاز هست تا فایل proto سرویس را از پنل ستون دانلود کرده و طبق مستندات protobuf آن را به زبان مورد نظر کامپایل (compile) کنید. در ادامه به توضیحات این فایل می‌پردازیم.

TTS.png

سرویسی که می‌بایست توسط کلاینت فراخوانی شود، سرویس TextToSpeech و تابع مورد نظر برای تبدیل به صوت، SynthesizeSpeech است. ورودی این تابع به شکل زیر است:

فیلد اول ورودی متن اصلی برای تبدیل به صوت است که یا می‌توان به‌صورت متن فارسی باشد، که در این صورت فیلد text استفاده می‌شود و یا می‌تواند به صورت فونتیک باشد که در این صورت بایستی از فیلد phonemes استفاده شود. این فیلد اجباری‌ست و حتما باید یکی از این دو نوع ورودی داده شوند.

فیلد بعدی audio_encoding است که یک enum شامل فرمت دلخواه صوت خروجی‌ست. در لحظه‌ی نوشتن این مستند، با گذاشتن عدد ۱ در این فیلد، فرمت خروجی wav خواهد بود و عدد ۲ نیز فرمت خروجی mp3 را تولید می‌کند.

فیلد tempo نیز سرعت پخش صوت را مشخص می‌کند. مقدار ۱ برابر سرعت عادی است و می‌تواند در بازه‌ی ۰.۵ تا ۲ قرار بگیرد. با استفاده از فیلد sample_rate_hertz نیز می‌توان سمپل ریت صدای خروجی را به مقدار دلخواه تغییر داد.

فرمت پاسخی که این سرویس می‌دهد به صورت زیر است:

در تنها فیلد پاسخ سرور، صوت خروجی با فرمتی که در ورودی تعیین شده بود قرار می‌گیرد.

۲- مشابه کلاینت cli که سه متغیر محلی TTS_SERVICE و TTS_TOKEN و TTS_ADDRESS وجود داشتند، در اینجا نیز بایستی هدرهای service و token و همچنین آدرس به‌صورت کامل (tts.cc.sotoon.ir:443) هنگام ریکوئست زدن تنظیم شوند که توضیحات آن در مستندات مربوط به نحوه استفاده از کلاینت‌ها آمده‌است.

آیا این مقاله به شما کمک کرد؟

با نظر دادن به بهبود کیفیت مستندات کمک کنید