معرفی و مستندات مدل هوش مصنوعی nova-2
مستندات مدل nova-2 از Deepgram برای استفاده در ای آی کار (AI-KAR)
معرفی و بررسی فنی
⚡ وضعیت پشتیبانی از زبان فارسی
این مدل از زبان فارسی به صورت متوسط پشتیبانی میکند و در تشخیص لهجهها و اصطلاحات تخصصی ممکن است با مشکل مواجه شود.
معرفی مدل nova-2
مدل Nova-2 بر اساس پیشرفتهای Nova-1 ساخته شده است و از بهینهسازیهای خاص گفتار در معماری Transformer، تکنیکهای پالایش داده و یک رویکرد آموزش چند مرحلهای بهره میبرد. این بهبودها منجر به کاهش نرخ خطای کلمه (WER) و تشخیص بهتر موجودیتها (از جمله اسامی خاص و دنبالههای الفبایی-عددی)، و همچنین بهبود نقطهگذاری و حروف بزرگ میشود.
Nova-2 گزینههای مدل زیر را ارائه میدهد:
- automotive: بهینه شده برای صدا با واژگان مرتبط با خودرو.
- conversationalai: بهینه شده برای مواردی که یک انسان با یک ربات خودکار صحبت میکند، مانند IVR، یک دستیار صوتی یا یک کیوسک خودکار.
- drivethru: بهینه شده برای منابع صوتی از درایو تروها.
- finance: بهینه شده برای چند بلندگو با کیفیت صوتی متفاوت، مانند آنچه در یک تماس تلفنی معمولی یافت میشود. واژگان به شدت مالی محور است.
- general: بهینه شده برای پردازش صوتی روزمره.
- medical: بهینه شده برای صدا با واژگان پزشکی.
- meeting: بهینه شده برای تنظیمات اتاق کنفرانس، که شامل چند بلندگو با یک میکروفون است.
- phonecall: بهینه شده برای تماسهای تلفنی صوتی با پهنای باند کم.
- video: بهینه شده برای صداهای گرفته شده از فیلم ها.
- voicemail: بهینه شده برای کلیپ های صوتی با پهنای باند کم با یک بلندگو. برگرفته از مدل تماس تلفنی.
مدلهای Nova-2 از صورتحساب بر اساس ثانیه استفاده میکنند. هزینه رونویسی صدا بر اساس تعداد ثانیهها در فایل صوتی ورودی است، نه زمان پردازش.
این مدل با استفاده از معماری پیشرفته و دادههای آموزشی گسترده، قادر است گفتار را با دقت بالا به متن تبدیل کند. از جمله قابلیتهای کلیدی آن میتوان به موارد زیر اشاره کرد:
- تشخیص دقیق کلمات: با بهرهگیری از الگوریتمهای پیشرفته، مدل Nova-2 قادر است کلمات را با دقت بالایی تشخیص دهد، حتی در محیطهای پر سر و صدا یا با لهجههای مختلف.
- پشتیبانی از زبانهای مختلف: این مدل از زبانهای مختلفی پشتیبانی میکند و میتواند گفتار را به زبانهای مختلف به متن تبدیل کند.
- تشخیص موجودیتها: مدل Nova-2 قادر است موجودیتهای مختلف مانند نام افراد، سازمانها، مکانها و تاریخها را در متن تشخیص دهد.
- تشخیص لحن: این مدل میتواند لحن گوینده را تشخیص دهد و احساسات موجود در گفتار را شناسایی کند.
- خلاصهسازی متن: مدل Nova-2 میتواند متنهای طولانی را خلاصه کند و نکات کلیدی را استخراج کند.
- تشخیص موضوعات: این مدل میتواند موضوعات اصلی متن را تشخیص دهد و دستهبندی کند.
با استفاده از مدل Nova-2، میتوانید به راحتی گفتار را به متن تبدیل کنید، اطلاعات کلیدی را از متن استخراج کنید و تحلیلهای مختلفی را بر روی متن انجام دهید. این مدل برای کاربردهای مختلفی مانند رونویسی جلسات، تحلیل نظرات مشتریان، تولید محتوا و غیره مناسب است.
مشخصات فنی (API References)
| پارامتر | نوع | توضیحات و مقادیر |
|---|---|---|
model | stringRequired | مدلی که برای تبدیل گفتار به متن استفاده میشود. یکی از مقادیر enum را انتخاب کنید. مقادیر مجاز (کلیک برای کپی): |
custom_intent | string | string[] | یک قصد سفارشی که میخواهید مدل در صدای ورودی شما در صورت وجود شناسایی کند. حداکثر 100 مورد را ارسال کنید. |
custom_topic | string | string[] | یک موضوع سفارشی که میخواهید مدل در صدای ورودی شما در صورت وجود شناسایی کند. حداکثر 100 مورد را ارسال کنید. |
custom_intent_mode | string | نحوه تفسیر رشتههای ارسال شده به پارامتر custom_intent را تعیین میکند. وقتی strict باشد، مدل فقط اهدافی را که با استفاده از پارامتر custom_intent ارسال شدهاند، برمیگرداند. وقتی extended باشد، مدل اهداف شناسایی شده خود را علاوه بر اهداف ارسال شده با استفاده از پارامتر custom_intents برمیگرداند. مقادیر مجاز (کلیک برای کپی): |
custom_topic_mode | string | نحوه تفسیر رشتههای ارسال شده به پارامتر custom_topic را تعیین میکند. وقتی strict باشد، مدل فقط موضوعاتی را که با استفاده از پارامتر custom_topic ارسال شدهاند، برمیگرداند. وقتی extended باشد، مدل موضوعات شناسایی شده خود را علاوه بر موضوعات ارسال شده با استفاده از پارامتر custom_topic برمیگرداند. مقادیر مجاز (کلیک برای کپی): |
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، از گزینه رشته ای پشتیبانی می کند. برای Read API، فقط boolean را می پذیرد. |
tag | string[] | درخواست های خود را به منظور شناسایی در طول گزارش استفاده برچسب گذاری کنید. |
topics | boolean | موضوعات را در سراسر رونویسی یا متن تشخیص می دهد. |
utterances | boolean | Opti |
نمونه کدهای درخواست
نکته مهم برای توسعهدهندگان:
برای احراز هویت، حتما کلید 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_nova-2-meeting",
"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)
{
"generation_id": "h66460ba-0562-1dd9-b440-a56d947e72a3"
}