Voice/Speech Modelsassembly-aiSpeech-to-Text
معرفی و مستندات مدل هوش مصنوعی universal
مستندات مدل universal از assembly-ai برای استفاده در ای آی کار (AI-KAR)
معرفی و بررسی فنی
⚡ وضعیت پشتیبانی از زبان فارسی
این مدل از زبان فارسی به صورت متوسط پشتیبانی میکند. دقت در تشخیص کلمات و عبارات فارسی ممکن است به اندازه زبانهای اصلی مانند انگلیسی نباشد، اما همچنان میتواند برای بسیاری از کاربردها مفید باشد.
مدل universal از assembly-ai یک مدل تبدیل گفتار به متن (Speech-to-Text) است که با بهرهگیری از درک عمیق از متن و معناشناسی، دقت فوقالعادهای را ارائه میدهد. این مدل از طیف گستردهای از زبانها پشتیبانی میکند و برای پردازش فایلهای صوتی با زبانهای مختلف مناسب است. یکی از ویژگیهای برجسته این مدل، استفاده از سیستم پرداخت به ازای هر ثانیه است. به این معنی که هزینه تبدیل گفتار به متن بر اساس تعداد ثانیههای موجود در فایل صوتی ورودی محاسبه میشود، نه بر اساس زمان پردازش. این امر به کاربران کمک میکند تا هزینههای خود را به طور دقیقتر مدیریت کنند.
مدل universal قادر است انواع مختلفی از وظایف پردازش صدا را انجام دهد. از جمله این وظایف میتوان به موارد زیر اشاره کرد:
1. **تبدیل گفتار به متن با دقت بالا:** این مدل با استفاده از الگوریتمهای پیشرفته، قادر است گفتار را با دقت بسیار بالایی به متن تبدیل کند. این ویژگی برای مواردی که دقت متن بسیار مهم است، مانند تهیه رونوشت از جلسات یا مصاحبهها، بسیار حائز اهمیت است.
2. **پشتیبانی از زبانهای مختلف:** مدل universal از طیف گستردهای از زبانها پشتیبانی میکند. این ویژگی به کاربران امکان میدهد تا فایلهای صوتی با زبانهای مختلف را به متن تبدیل کنند.
3. **تشخیص خودکار زبان:** این مدل قادر است به طور خودکار زبان فایل صوتی ورودی را تشخیص دهد. این ویژگی به کاربران کمک میکند تا بدون نیاز به تعیین زبان، فایلهای صوتی خود را پردازش کنند.
4. **اضافه کردن نشانهگذاری و حروف بزرگ:** این مدل میتواند به طور خودکار نشانهگذاری و حروف بزرگ را به متن اضافه کند. این ویژگی باعث میشود که متن خواناتر و قابل فهمتر شود.
5. **قالببندی متن:** این مدل میتواند متن را به طور خودکار قالببندی کند. این ویژگی باعث میشود که متن زیباتر و منظمتر به نظر برسد.
6. **حذف کلمات اضافی:** این مدل میتواند کلمات اضافی مانند "اوم" را از متن حذف کند. این ویژگی باعث میشود که متن روانتر و حرفهایتر به نظر برسد.
7. **پشتیبانی از چند کانال صوتی:** این مدل میتواند فایلهای صوتی با چند کانال صوتی را پردازش کند. این ویژگی برای مواردی که فایل صوتی شامل چندین گوینده است، بسیار مفید است.
8. **تشخیص هویت گوینده:** این مدل میتواند هویت گویندههای مختلف را در فایل صوتی تشخیص دهد. این ویژگی برای مواردی که نیاز به شناسایی گویندههای مختلف است، مانند جلسات یا مصاحبهها، بسیار حائز اهمیت است.
9. **تشخیص محتوای نامناسب:** این مدل میتواند محتوای نامناسب را در فایل صوتی تشخیص دهد. این ویژگی برای مواردی که نیاز به فیلتر کردن محتوای نامناسب است، مانند پادکستها یا ویدیوها، بسیار مفید است.
10. **تشخیص موضوع:** این مدل میتواند موضوع فایل صوتی را تشخیص دهد. این ویژگی برای مواردی که نیاز به دستهبندی فایلهای صوتی بر اساس موضوع است، بسیار حائز اهمیت است.
11. **تصحیح املایی:** این مدل میتواند املای کلمات را تصحیح کند. این ویژگی به کاربران کمک میکند تا متنهای بدون غلط املایی تولید کنند.
12. **خلاصه سازی:** این مدل میتواند یک خلاصه از متن تولید کند.
13. **فصل بندی خودکار:** این مدل می تواند به طور خودکار فصل ها را تشخیص دهد.
با استفاده از مدل universal، کاربران میتوانند به راحتی و با دقت بالا فایلهای صوتی خود را به متن تبدیل کنند و از ویژگیهای پیشرفته پردازش صدا بهرهمند شوند. این مدل برای طیف گستردهای از کاربردها، از جمله تهیه رونوشت از جلسات و مصاحبهها، تولید محتوای متنی از فایلهای صوتی، و تجزیه و تحلیل محتوای صوتی، مناسب است.
مدل universal قادر است انواع مختلفی از وظایف پردازش صدا را انجام دهد. از جمله این وظایف میتوان به موارد زیر اشاره کرد:
1. **تبدیل گفتار به متن با دقت بالا:** این مدل با استفاده از الگوریتمهای پیشرفته، قادر است گفتار را با دقت بسیار بالایی به متن تبدیل کند. این ویژگی برای مواردی که دقت متن بسیار مهم است، مانند تهیه رونوشت از جلسات یا مصاحبهها، بسیار حائز اهمیت است.
2. **پشتیبانی از زبانهای مختلف:** مدل universal از طیف گستردهای از زبانها پشتیبانی میکند. این ویژگی به کاربران امکان میدهد تا فایلهای صوتی با زبانهای مختلف را به متن تبدیل کنند.
3. **تشخیص خودکار زبان:** این مدل قادر است به طور خودکار زبان فایل صوتی ورودی را تشخیص دهد. این ویژگی به کاربران کمک میکند تا بدون نیاز به تعیین زبان، فایلهای صوتی خود را پردازش کنند.
4. **اضافه کردن نشانهگذاری و حروف بزرگ:** این مدل میتواند به طور خودکار نشانهگذاری و حروف بزرگ را به متن اضافه کند. این ویژگی باعث میشود که متن خواناتر و قابل فهمتر شود.
5. **قالببندی متن:** این مدل میتواند متن را به طور خودکار قالببندی کند. این ویژگی باعث میشود که متن زیباتر و منظمتر به نظر برسد.
6. **حذف کلمات اضافی:** این مدل میتواند کلمات اضافی مانند "اوم" را از متن حذف کند. این ویژگی باعث میشود که متن روانتر و حرفهایتر به نظر برسد.
7. **پشتیبانی از چند کانال صوتی:** این مدل میتواند فایلهای صوتی با چند کانال صوتی را پردازش کند. این ویژگی برای مواردی که فایل صوتی شامل چندین گوینده است، بسیار مفید است.
8. **تشخیص هویت گوینده:** این مدل میتواند هویت گویندههای مختلف را در فایل صوتی تشخیص دهد. این ویژگی برای مواردی که نیاز به شناسایی گویندههای مختلف است، مانند جلسات یا مصاحبهها، بسیار حائز اهمیت است.
9. **تشخیص محتوای نامناسب:** این مدل میتواند محتوای نامناسب را در فایل صوتی تشخیص دهد. این ویژگی برای مواردی که نیاز به فیلتر کردن محتوای نامناسب است، مانند پادکستها یا ویدیوها، بسیار مفید است.
10. **تشخیص موضوع:** این مدل میتواند موضوع فایل صوتی را تشخیص دهد. این ویژگی برای مواردی که نیاز به دستهبندی فایلهای صوتی بر اساس موضوع است، بسیار حائز اهمیت است.
11. **تصحیح املایی:** این مدل میتواند املای کلمات را تصحیح کند. این ویژگی به کاربران کمک میکند تا متنهای بدون غلط املایی تولید کنند.
12. **خلاصه سازی:** این مدل میتواند یک خلاصه از متن تولید کند.
13. **فصل بندی خودکار:** این مدل می تواند به طور خودکار فصل ها را تشخیص دهد.
با استفاده از مدل universal، کاربران میتوانند به راحتی و با دقت بالا فایلهای صوتی خود را به متن تبدیل کنند و از ویژگیهای پیشرفته پردازش صدا بهرهمند شوند. این مدل برای طیف گستردهای از کاربردها، از جمله تهیه رونوشت از جلسات و مصاحبهها، تولید محتوای متنی از فایلهای صوتی، و تجزیه و تحلیل محتوای صوتی، مناسب است.
مشخصات فنی (API References)
| پارامتر | نوع | توضیحات و مقادیر |
|---|---|---|
model | stringRequired | مدل مورد استفاده برای تبدیل گفتار به متن. مقدار معتبر: aai/universal مقادیر مجاز (کلیک برای کپی): |
audio | objectRequired | فایل صوتی برای تبدیل به متن. |
audio_start_from | integer | نقطه شروع فایل صوتی برای رونویسی، بر حسب میلیثانیه. |
audio_end_at | integer | نقطه پایان فایل صوتی برای رونویسی، بر حسب میلیثانیه. |
language_code | string | کد زبان فایل صوتی. مقادیر ممکن در Supported Languages یافت میشوند. مقدار پیشفرض 'en_us' است. |
language_confidence_threshold | number | آستانه اطمینان برای زبان شناسایی شده به صورت خودکار. اگر اطمینان زبان کمتر از این آستانه باشد، یک خطا برگردانده میشود. مقدار پیشفرض 0 است. |
language_detection | boolean | فعال کردن تشخیص خودکار زبان، مقدار true یا false. فقط برای مدل universal در دسترس است. |
punctuate | boolean | اضافه کردن نشانهگذاری و حروف بزرگ به متن. |
format_text | boolean | فعال کردن قالببندی متن، مقدار true یا false. |
disfluencies | boolean | رونویسی کلمات پرکننده، مانند "اوم"، در فایل رسانهای. مقدار true یا false. |
multichannel | boolean | فعال کردن رونویسی چند کاناله، مقدار true یا false. |
speaker_labels | boolean | فعال کردن تشخیص هویت گوینده، مقدار true یا false. |
speakers_expected | integer | به مدل تشخیص هویت گوینده بگویید که چند گوینده را شناسایی کند. برای جزئیات بیشتر به Speaker diarization مراجعه کنید. |
content_safety | boolean | فعال کردن تعدیل محتوا، مقدار true یا false. |
iab_categories | boolean | فعال کردن تشخیص موضوع، مقدار true یا false. |
custom_spelling | object[] | سفارشی کردن نحوه املای کلمات با استفاده از مقادیر to و from. |
auto_highlights | boolean | فعال کردن عبارات کلیدی، مقدار true یا false. |
word_boost | string[] | لیست واژگان سفارشی برای افزایش احتمال رونویسی. |
boost_param | string | میزان تقویت کلمات مشخص شده. مقادیر مجاز: low, default, high. مقادیر مجاز (کلیک برای کپی): |
filter_profanity | boolean | فیلتر کردن کلمات رکیک از متن رونویسی شده، مقدار true یا false. |
redact_pii | boolean | حذف اطلاعات شناسایی شخصی (PII) از متن رونویسی شده با استفاده از مدل Redact PII، مقدار true یا false. |
redact_pii_audio | boolean | تولید یک کپی از فایل رسانهای اصلی با حذف صدای PII، مقدار true یا false. برای جزئیات بیشتر به PII redaction مراجعه کنید. |
redact_pii_audio_quality | string | کنترل نوع فایل صوتی ایجاد شده توسط redact_pii_audio. در حال حاضر از mp3 (پیشفرض) و wav پشتیبانی میکند. برای جزئیات بیشتر به PII redaction مراجعه کنید. مقادیر مجاز (کلیک برای کپی): |
redact_pii_policies | string[] | لیست سیاستهای Redaction PII برای فعال کردن. برای جزئیات بیشتر به PII redaction مراجعه کنید. |
redact_pii_sub | string | منطق جایگزینی برای PII شناسایی شده، میتواند entity_type یا hash باشد. برای جزئیات بیشتر به PII redaction مراجعه کنید. مقادیر مجاز (کلیک برای کپی): |
sentiment_analysis | boolean | فعال کردن تحلیل احساسات، مقدار true یا false. |
entity_detection | boolean | فعال کردن تشخیص موجودیت، مقدار true یا false. |
summarization | boolean | فعال کردن خلاصه سازی، مقدار true یا false. |
summary_model | string | مدل برای خلاصه کردن متن. مقادیر مجاز: informative, conversational, catchy. مقادیر مجاز (کلیک برای کپی): |
summary_type | string | نوع خلاصه. مقادیر مجاز: bullets, bullets_verbose, gist, headline, paragraph. مقادیر مجاز (کلیک برای کپی): |
auto_chapters | boolean | فعال کردن فصل بندی خودکار، مقدار true یا false. |
speech_threshold | number | رد کردن فایلهای صوتی که کمتر از این مقدار حاوی گفتار هستند. مقادیر معتبر در محدوده [0, 1] هستند. |
نمونه کدهای درخواست
نکته مهم برای توسعهدهندگان:
برای احراز هویت، حتما کلید API خود را جایگزین YOUR_API_KEY کنید. هدر Authorization الزامی است.
import time
import requests
import json # for getting a structured output with indentation
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": "aai/universal",
"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"]["text"])
# Uncomment the line below to print the entire "result" object with all service data
# print("Processing complete:/n", json.dumps(response_data["result"], indent=2, ensure_ascii=False))
return response_data
print("Timeout reached. Stopping.")
return None
if __name__ == "__main__":
main()نمونه پاسخ موفق (JSON)
RESPONSE (200 OK)
{
"generation_id": "123e4567-e89b-12d3-a456-426614174000"
}