Voice/Speech ModelsopenaiSpeech-to-Text
معرفی و مستندات مدل هوش مصنوعی whisper-tiny
مستندات مربوط به مدل whisper-tiny از OpenAI برای استفاده در ای آی کار (AI-KAR)
معرفی و بررسی فنی
⚡ وضعیت پشتیبانی از زبان فارسی
این مدل از زبان فارسی به صورت متوسط پشتیبانی میکند. دقت در رونویسی متون فارسی ممکن است به اندازه زبان انگلیسی نباشد و نیاز به بررسی و ویرایش داشته باشد.
مدل Whisper Tiny، یکی از مدلهای خانواده Whisper توسعهیافته توسط OpenAI است که به طور خاص برای تبدیل گفتار به متن (STT) طراحی شده است. این مدل با استفاده از حجم عظیمی از دادههای صوتی و متنی آموزش داده شده است و قادر است گفتار را از زبانهای مختلف به متن تبدیل کند. تمرکز اصلی در توسعه این مدلها، ایجاد راهکارهایی مقاوم، با قابلیت تعمیم بالا و با کمترین میزان خطا بوده است. شایان ذکر است که استفاده از مدلهای Whisper برای رونویسی مکالمات غیرمجاز یا در تصمیمگیریهای پرخطر به دلیل احتمال وجود خطا و ملاحظات اخلاقی اکیداً توصیه نمیشود.
مدلهای Whisper با استفاده از 680,000 ساعت دادههای صوتی و متنی از اینترنت آموزش داده شدهاند. این دادهها شامل 65% صوت و متن انگلیسی، 18% صوت غیرانگلیسی با متن انگلیسی و 17% صوت غیرانگلیسی با متن غیرانگلیسی است که در مجموع 98 زبان را پوشش میدهد. این تنوع زبانی و حجم بالای دادهها، مدلهای Whisper را به ابزاری قدرتمند برای تشخیص گفتار در شرایط مختلف تبدیل کرده است.
مدل Whisper Tiny به طور خاص برای کاربردهایی که نیاز به سرعت و کارایی بالا دارند، مناسب است. این مدل در مقایسه با مدلهای بزرگتر Whisper، حجم کمتری دارد و در نتیجه، سریعتر عمل میکند و منابع کمتری را مصرف میکند. با این حال، دقت آن ممکن است در برخی موارد کمتر از مدلهای بزرگتر باشد. از جمله کاربردهای این مدل میتوان به موارد زیر اشاره کرد:
1. **رونویسی سریع پادکستها و ویدیوها:** با استفاده از Whisper Tiny میتوان به سرعت فایلهای صوتی و تصویری را به متن تبدیل کرد و از این متن برای ایجاد زیرنویس، خلاصه سازی و یا جستجو در محتوا استفاده کرد.
2. **پیادهسازی دستیارهای صوتی:** این مدل میتواند به عنوان بخشی از یک سیستم دستیار صوتی برای تشخیص دستورات صوتی کاربر و پاسخگویی به آنها استفاده شود.
3. **تبدیل گفتار به متن در برنامههای موبایل:** حجم کم Whisper Tiny آن را برای استفاده در برنامههای موبایل که با محدودیت منابع مواجه هستند، مناسب میسازد.
4. **ایجاد زیرنویس برای ویدیوها:** با استفاده از این مدل میتوان به سرعت زیرنویس برای ویدیوها ایجاد کرد و آنها را برای مخاطبان گستردهتری در دسترس قرار داد.
5. **تحلیل احساسات در گفتار:** با ترکیب Whisper Tiny با سایر ابزارهای تحلیل احساسات، میتوان احساسات موجود در گفتار را تشخیص داد و از این اطلاعات برای بهبود خدمات مشتریان و یا تحلیل بازخورد کاربران استفاده کرد.
به طور خلاصه، مدل Whisper Tiny یک ابزار قدرتمند و کارآمد برای تبدیل گفتار به متن است که با توجه به حجم کم و سرعت بالای خود، برای طیف گستردهای از کاربردها مناسب است. با این حال، لازم است توجه داشت که دقت این مدل ممکن است در برخی موارد کمتر از مدلهای بزرگتر باشد و در استفاده از آن در کاربردهای حساس، باید دقت لازم را به عمل آورد.
مدلهای Whisper با استفاده از 680,000 ساعت دادههای صوتی و متنی از اینترنت آموزش داده شدهاند. این دادهها شامل 65% صوت و متن انگلیسی، 18% صوت غیرانگلیسی با متن انگلیسی و 17% صوت غیرانگلیسی با متن غیرانگلیسی است که در مجموع 98 زبان را پوشش میدهد. این تنوع زبانی و حجم بالای دادهها، مدلهای Whisper را به ابزاری قدرتمند برای تشخیص گفتار در شرایط مختلف تبدیل کرده است.
مدل Whisper Tiny به طور خاص برای کاربردهایی که نیاز به سرعت و کارایی بالا دارند، مناسب است. این مدل در مقایسه با مدلهای بزرگتر Whisper، حجم کمتری دارد و در نتیجه، سریعتر عمل میکند و منابع کمتری را مصرف میکند. با این حال، دقت آن ممکن است در برخی موارد کمتر از مدلهای بزرگتر باشد. از جمله کاربردهای این مدل میتوان به موارد زیر اشاره کرد:
1. **رونویسی سریع پادکستها و ویدیوها:** با استفاده از Whisper Tiny میتوان به سرعت فایلهای صوتی و تصویری را به متن تبدیل کرد و از این متن برای ایجاد زیرنویس، خلاصه سازی و یا جستجو در محتوا استفاده کرد.
2. **پیادهسازی دستیارهای صوتی:** این مدل میتواند به عنوان بخشی از یک سیستم دستیار صوتی برای تشخیص دستورات صوتی کاربر و پاسخگویی به آنها استفاده شود.
3. **تبدیل گفتار به متن در برنامههای موبایل:** حجم کم Whisper Tiny آن را برای استفاده در برنامههای موبایل که با محدودیت منابع مواجه هستند، مناسب میسازد.
4. **ایجاد زیرنویس برای ویدیوها:** با استفاده از این مدل میتوان به سرعت زیرنویس برای ویدیوها ایجاد کرد و آنها را برای مخاطبان گستردهتری در دسترس قرار داد.
5. **تحلیل احساسات در گفتار:** با ترکیب Whisper Tiny با سایر ابزارهای تحلیل احساسات، میتوان احساسات موجود در گفتار را تشخیص داد و از این اطلاعات برای بهبود خدمات مشتریان و یا تحلیل بازخورد کاربران استفاده کرد.
به طور خلاصه، مدل Whisper Tiny یک ابزار قدرتمند و کارآمد برای تبدیل گفتار به متن است که با توجه به حجم کم و سرعت بالای خود، برای طیف گستردهای از کاربردها مناسب است. با این حال، لازم است توجه داشت که دقت این مدل ممکن است در برخی موارد کمتر از مدلهای بزرگتر باشد و در استفاده از آن در کاربردهای حساس، باید دقت لازم را به عمل آورد.
مشخصات فنی (API References)
| پارامتر | نوع | توضیحات و مقادیر |
|---|---|---|
model | stringRequired | مدلی که برای تبدیل گفتار به متن استفاده میشود. مقدار پیشفرض #g1_whisper-tiny است. مقادیر مجاز (کلیک برای کپی): |
custom_intent | string | string[] | یک یا چند عبارت سفارشی که میخواهید مدل در صوت ورودی شناسایی کند. حداکثر 100 عبارت. |
custom_topic | string | string[] | یک یا چند موضوع سفارشی که میخواهید مدل در صوت ورودی شناسایی کند. حداکثر 100 موضوع. |
custom_intent_mode | string | نحوه تفسیر عبارات ارسالی به پارامتر custom_intent. strict: فقط عبارات ارسالی در custom_intent برگردانده میشوند. extended: علاوه بر عبارات ارسالی، عبارات شناسایی شده توسط مدل نیز برگردانده میشوند. مقادیر مجاز (کلیک برای کپی): |
custom_topic_mode | string | نحوه تفسیر عبارات ارسالی به پارامتر custom_topic. strict: فقط موضوعات ارسالی در custom_topic برگردانده میشوند. extended: علاوه بر موضوعات ارسالی، موضوعات شناسایی شده توسط مدل نیز برگردانده میشوند. مقادیر مجاز (کلیک برای کپی): |
detect_language | boolean | فعال کردن تشخیص زبان غالب در صوت ارسالی. |
detect_entities | boolean | فعال کردن تشخیص موجودیتها در صوت ارسالی. با فعال شدن این گزینه، قابلیت نقطهگذاری نیز به طور پیشفرض فعال میشود. |
detect_topics | boolean | تشخیص مهمترین و مرتبطترین موضوعات موجود در گفتار. |
diarize | boolean | تشخیص تغییرات گوینده. به هر کلمه در متن رونویسی شده یک شماره گوینده اختصاص داده میشود که از 0 شروع میشود. |
dictation | boolean | شناسایی و استخراج موجودیتهای کلیدی از محتوای صوت ارسالی. |
diarize_version | string | نسخه diarize. |
extra | string | جفتهای کلید-مقدار دلخواه که به پاسخ API برای استفاده در پردازشهای بعدی پیوست میشوند. |
filler_words | boolean | تشخیص کلمات پرکننده مانند "uh" و "um" در صوت. |
intents | boolean | تشخیص قصد گوینده در طول متن رونویسی شده. |
keywords | string | کلمات کلیدی میتوانند اصطلاحات تخصصی و برندها را تقویت یا سرکوب کنند. |
language | string | تگ زبان BCP-47 که به زبان اصلی گفتاری اشاره دارد. بسته به مدل و نقطه پایانی API انتخابی، فقط زبانهای خاصی در دسترس هستند. |
measurements | boolean | تبدیل مقادیر اندازهگیری گفتاری به اختصارات مربوطه. |
multi_channel | boolean | رونویسی مستقل هر کانال صوتی. |
numerals | boolean | تبدیل اعداد از فرمت نوشتاری به فرمت عددی. |
paragraphs | boolean | تقسیم صدا به پاراگرافها برای بهبود خوانایی متن رونویسی شده. |
profanity_filter | boolean | فیلتر کلمات رکیک به دنبال کلمات رکیک شناخته شده میگردد و آنها را به نزدیکترین کلمه غیر رکیک شناخته شده تبدیل میکند یا به طور کامل از متن رونویسی شده حذف میکند. |
punctuate | boolean | افزودن نقطهگذاری و حروف بزرگ به متن رونویسی شده. |
search | string | جستجو برای اصطلاحات یا عبارات در صوت ارسالی. |
sentiment | boolean | تشخیص احساسات در طول متن رونویسی شده. |
smart_format | boolean | اعمال قالببندی به خروجی متن رونویسی شده. وقتی روی true تنظیم شود، قالببندی اضافی برای بهبود خوانایی به متون رونویسی شده اعمال میشود. |
summarize | string | خلاصه کردن محتوا. برای Listen API، از گزینه string version پشتیبانی میکند. برای Read API، فقط boolean را میپذیرد. |
tag | string[] | برچسبگذاری درخواستها برای شناسایی در گزارشگیری استفاده. |
topics | boolean | تشخیص موضوعات در طول متن رونویسی شده. |
utterances | boolean | تقسیم گفتار به واحدهای معنایی معنادار. |
utt_split | number | مدت زمان (به ثانیه) برای تشخیص مکث بین کلمات در صوت ارسالی. |
نمونه کدهای درخواست
نکته مهم برای توسعهدهندگان:
برای احراز هویت، حتما کلید API خود را جایگزین YOUR_API_KEY کنید. هدر Authorization الزامی است.
import time
import requests
base_url = "https://api.ai-kar.com/v1"
# Insert your AI-KAR API Key instead of <YOUR_AI-KARAPI_KEY>:
api_key = "<YOUR_AI-KARAPI_KEY>"
# Creating and sending a speech-to-text conversion task to the server
def create_stt():
url = f"{base_url}/stt/create"
headers = {
"Authorization": f"Bearer {api_key}",
}
data = {
"model": "#g1_whisper-tiny",
"url": "https://audio-samples.github.io/samples/mp3/blizzard_primed/sample-0.mp3"
}
response = requests.post(url, json=data, headers=headers)
if response.status_code >= 400:
print(f"Error: {response.status_code} - {response.text}")
else:
response_data = response.json()
print(response_data)
return response_data
# Requesting the result of the task from the server using the generation_id
def get_stt(gen_id):
url = f"{base_url}/stt/{gen_id}"
headers = {
"Authorization": f"Bearer {api_key}",
}
response = requests.get(url, headers=headers)
return response.json()
# First, start the generation, then repeatedly request the result from the server every 10 seconds.
def main():
stt_response = create_stt()
gen_id = stt_response.get("generation_id")
if gen_id:
start_time = time.time()
timeout = 600
while time.time() - start_time < timeout:
response_data = get_stt(gen_id)
if response_data is None:
print("Error: No response from API")
break
status = response_data.get("status")
if status == "waiting" or status == "active":
print("Still waiting... Checking again in 10 seconds.")
time.sleep(10)
else:
print("Processing complete:/n", response_data["result"]['results']["channels"][0]["alternatives"][0]["transcript"])
return response_data
print("Timeout reached. Stopping.")
return None
if __name__ == "__main__":
main()نمونه پاسخ موفق (JSON)
RESPONSE (200 OK)
{
"generation_id": "f3e8729e-9a36-4650-81f1-c08fc1b16f39"
}