نرم افزار iotype به منظور بهرهمندی توسعه دهندگان نرم افزار از سرویسهای مربوط به ASR فارسی ، پردازش صدا و تبدیل همزمان صوت به متن API های خود را در دو ساختار تبدیل همزمان صدا به متن (Realtime Speech Recognize) و ساختار ارسال فایل، دریافت متن ارائه می دهد. در API تبدیل همزمان صدا به متن توسعه دهنده می تواند همزمان صدا (یا محتوی یک فایل صوتی) را از کاربر خود به صورت stream (بستههای داده پشت سر هم) دریافت نموده و با ارسال آنها از طریق پروتکل wss (WebSocket Secured) به سرورهای iotype متن صوتهای ارسالی را به صورت stream دریافت نماید. در ساختار API ارسال فایل و دریافت متن ، توسعه دهنده فایل صوتی خود را به API تایپ صوتی فارسی از طریق درخواست Http ارسال کرده و متن آن را دریافت می کند.
برای استفاده از سرویسهای توسعه دهندگان در iotype توسعه دهنده میبایست یک API TOKEN دریافت نمایید. تعرفه API TOKEN ها در آی او تایپ در سرویس های API تبدیل گفتار به نوشتار فارسی ، در هر دو ساختار تبدیل همزمان و تبدیل از طریق فایل ، بر اساس تعداد کلمه و دوره زمانی استفاده از سرویس محاسبه می شود.
در نگارش مستندات API تایپ صوتی تلاش کرده ایم تا با حداکثر جزئیات پرسشهای شما را پاسخگو باشیم. در صورتی که در هر بخش از مستندات مربوط به API ابهامی وجود دارد لطفا سوالات خود را از طریق تلگرام iotype_support مطرح نمایید. باعث افتخار ماست که شما توسعه دهنده گرامی ما را در تکمیل و نگارش بهتر مستندات و نمونه کدها در زبانهای برنامه نویسی مختلف یاری نمایید.
در این API توسعه دهنده فایل خود را به آدرس API ارسال کرده و متن را دریافت می کند. ارسال فایل به API تایپ صوتی به دو صورت ارسال فقط URL (بارگذاری فایل در سمت توسعه دهنده و ارسال آدرس URL عمومی فایل صوتی) یا ارسال Form Data (بارگذاری فایل در سرورهای iotype) انجام می شود.
طبیعتا پاسخ در فرمت ارسال URL عمومی فایل صوتی نسبت به بارگذاری آن در iotype سریعتر انجام می شود چرا که مرحله بارگذاری فایل در سمت توسعه دهنده انجام می شود. لازم به توضیح است که با توجه به مدت فایل صوتی ارسالی به سرور iotype مدت پاسخگوی سرور به درخواست شما ممکن است متغیر باشد. پیشنهاد می شود فایل صوتی ارسالی به API تبدیل فایل صوتی به متن در یک درخواست بیش از یک دقیقه نبوده و حجم آن حداکثر 3MB باشد.
POST : https://www.iotype.com/developer/transcription
پارامتر | مقدار | ضروری ؟ | نوع | توضیحات |
---|---|---|---|---|
Authorization | API TOKEN | بله | رشته (String) | پارامتر Authorization را در هدر درخواست ارسال نمایید. مقدار این پارامتر API TOKEN دریافتی از iotype است. |
Accept | application/json | بله | رشته (String) | |
X-Requested-With | XMLHttpRequest | بله | رشته (String) |
پارامتر | ضروری ؟ | توضیحات |
---|---|---|
type | الزامی (url|file) | مقدار این پارامتر می توانید url یا file باشد. با توجه به نوع استفاده از سرویس ، مقدار آن را انتخاب نمایید. |
url | الزامی (برای تبدیل از طریق url فایل) | در صورتی که قصد ارسال فایل برای تبدیل از طریق url را دارید ، آدرس url عمومی فایل خود را ثبت نمایید. |
file | الزامی (برای تبدیل از طریق آپلود فایل) | در صورتی که قصد بارگذاری فایل در سرور iotype دارید فایل خود را انتخاب نمایید. |
در صورت خطا در اتصال ، خروجی به صورت زیر خواهد بود:
{ "status":0, "message":"ERROR_MESSAGE", "data": null }
در صورت موفقیت آمیز بودن اتصال ، خروجی به صورت زیر خواهد بود:
{ "status":100, "message":"transcribed", "result": 'متن تبدیل شده فایل صوتی' }
برای استفاده از این سرویس شما می بایست اطلاعات کافی درباره پروتکل wss و نحوه ارسال اطلاعات صوتی به صورت stream ، در زبان برنامه نویسی مورد نظر خود داشته باشید. ما در تلاشیم تا مستندات کافی برای زبانهای برنامه نویسی مختلف تهیه نماییم.
فرآیند کلی API تایپ صوتی آنی فارسی به صورت اتصال به آدرس API از طریق پروتکل wss ، سپس احراز هویت ، سپس ارسال داده های صوتی به صورت stream از دادهها و در پایان receive کردن نتایج از طریق پروتکل wss است.
با توجه به زبان برنامه نویسی انتخابی می بایست با استفاده از پروتکل وب سوکت امن (wss) به سرور iotype متصل شوید. نمونه کد ارائه شده در زبان javascript می باشد.
برای دریافت آدرس سرور Realtime Speech Recognize با پشتیبانی iotype از تلگرام iotype_support ارتباط بگیرید.
websocket = new WebSocket('wss://ASR_SERVER_ADDRESS');
برای استفاده از سرویس API نرم افزار iotype شما می بایست API TOKEN تهیه نمایید. با داشتن API TOKEN به دو روش می توانید اتصال خود به سرور iotype را احراز نمایید. روش اول اتصال مستقیم با API TOKEN و روش دوم دریافت توکن یکبار مصرف با استفاده از API TOKEN و سپس احراز هویت توسط توکن یکبار مصرف
روش اول برای اتصال به سرور iotype از سمت back-end سیستم توسعه دهنده است. در این روش API TOKEN شما آشکار است لذا نباید از این روش برای احراز هویت client-side استفاده نمایید چرا که API TOKEN شما برای عموم قابل مشاهده بوده و امکان استفاده از سرویس شما توسط شخص ثالث وجود دارد.
websocket = new WebSocket('wss://ASR_SERVER_ADDRESS'); ws.onopen = function(e) { var data = JSON.stringify({config : {'authorization_type' : 'developer','authorization_token' : 'API_TOKEN'}}); ws.send(data) };
روش دوم احراز هویت مناسب زمانی است که شما از سمت client قصد اتصال به سرورهای iotype را دارید. برای این منظور با استفاده از API TOKEN ، ابتدا به سرور دریافت توکن یکبار مصرف iotype متصل شده و توکن یکبار مصرف را دریافت نمایید (این کار حتما باید در back-end سیستم شما انجام شود). سپس با استفاده از توکن یکبار مصرف به سرور wss آی او تایپ متصل شوید.
برای دریافت توکن یکبار مصرف می بایست یک درخواست http به همراه API TOKEN و آدرس IP کلاینتی که قصد استفاده از سرویس را دارد ، به آدرس سرور FLASH TOKEN ارسال نمایید. لازم به تاکید است که این فرآیند باید از سمت سرور نرم افزار شما صورت گیرد به عبارت دیگر شما از سمت client یک درخواست دریافت توکن یکبار مصرف به سرور خود ارسال میکنید و سرور شما با اتصال به iotype توکین یکبار مصرف را دریافت کرده و شما آن را در اختیار client قرار می دهید. حال client با این توکن یکبار مصرف به سرور wss وصل می شود.
POST : https://www.iotype.com/developer/token
پارامتر | مقدار | ضروری ؟ | نوع | توضیحات |
---|---|---|---|---|
Authorization | API TOKEN | بله | رشته (String) | پارامتر Authorization را در هدر درخواست ارسال نمایید. مقدار این پارامتر API TOKEN دریافتی از iotype است. |
Accept | application/json | بله | رشته (String) | |
X-Requested-With | XMLHttpRequest | بله | رشته (String) |
پارامتر | ضروری ؟ | توضیحات |
---|---|---|
ip | الزامی | آدرس IP کلاینتی که قصد اتصال به سرور iotype در پروتکل wss را دارد. |
در پاسخ به این درخواست iotype یک توکن یکبار مصرف در اختیار شما قرار میدهد که می توانید با استفاده از آن به سرور Realtime Speech Recognize متصل شوید. لازم به ذکر است با قطع اتصال از سرور ، این توکن نیز منقضی می شود.
در صورت خطا در اتصال ، خروجی به صورت زیر خواهد بود:
{ "status":0, "message":"ERROR_MESSAGE", "data": null }
در صورت موفقیت آمیز بودن اتصال ، خروجی به صورت زیر خواهد بود:
{ "status":100, "data": { "token":"FLASH_TOKEN" } }
پس از دریافت توکن یکبار مصرف شما می توانید به صورت زیر به سرور wss متصل شوید.
websocket = new WebSocket('wss://ASR_SERVER_ADDRESS'); ws.onopen = function(e) { var data = JSON.stringify({config : {'authorization_type' : 'flash','authorization_token' : 'FLASH_TOKEN'}}); ws.send(data) };
در این مرحله احراز هویت شما تکمیل شده و اتصال به سرور iotype برقرار است. حال می بایست صوت مورد نظر خود به سمت سرور iotype اسریم نمایید. نحوه stream صوت با توجه به زبان برنامه نویسی استفاده شده در نرم افزار سمت سرور یا کلاینت شما متفاوت است. شما می توانید صدا را هم از میکروفون و هم از طریق یک فایل صوتی به سمت سرور iotype استریم نمایید. لازم به ذکر است Sample Rate صوت باید بر روی 44100 تنظیم شده و داده های ارسالی در فرمت 16BIT PCM باشند.
نمونه ارسال داده به سرور websocket در javascript
websocket.send(data)
متن تبدیل شده ارسالی از سمت در دو ساختار partial و text میباشد. زمانی که متن به طور کامل تشخیص داده نشده و همچنان پردازش بر روی صوت در حال انجام است پاسخ ها به صورت partial ارسال می شوند ، اما با تکمیل پردازش و اتمام تحلیل پاسخ به صورت text ارسال می شود.
نمونه دریافت داده از سرور websocket در javascript
websocket.onmessage = function (event) { received_msg = JSON.parse(event.data); if(received_msg['partial'] != ''){ console.log('Partial Text : ' + received_msg['partial']); }else if(received_msg['text'] != ''){ console.log('Full Text : ' + received_msg['text']); } };
تمامی توسعه دهندگان می توانند از رابط نرم افزاری تبدیل گفتار به نوشتار IoType به عنوان تنها رابط نرم افزاری فارسی در این زمینه استفاده نمایند. نرم افزارهای تولید شده مبتنی بر رابط نرم افزار IoType تحت حمایت کامل ما بوده و مجموعه IoType از تمامی ظرفیت های خود برای توسعه بستر مناسب برای ارایه این سرویس استفاده خواهد کرد. پشتیبانی نرم افزار IoType به صورت آنلاین می باشد. همچنین در صورت بروز مشکل در اتصال یا درخواست راهنمایی در زمینه اتصال به API، کارشناسان فنی از طریق آدرس ایمیل info@iotype.com یا پشتیبانی تلگرام iotype_support امکان بررسی تخصصی سوالات شما را خواهند داشت.