ضبط مکالمات دو کاناله مناسب استفاده از هوش مصنوعی

در کاربری های تحلیل صوت و تبدیل صدا به متن جهت کاربری هوش مصنوعی نیاز است که کانال های صدا یکطرفه باشد
یعنی صدای دو طرف مکالمه بصورت مجزا ضبط بشود
در حالت معمولی این اتفاق بصورت میکس شده دو طرف مکالمه در سیموتل موجود است که این فایل شاید در کاربری سیموتل و گزارشات خیلی مفید باشد، ولی هوش مصنوعی به سختی میتواند این مکالمات را از هم تفکیک کند
به همین دلیل کانفیگ زیر می تواند نیاز کاربران هوش مصنوعی را در سیموتل تامین کند

کافی است تنظیمات dual_channel در /etc/simotel/simotel.ini انجام دهید

dual_channel_recording_enabled = True
dual_channel_record_remove_after_day = 1
dual_channel_call_record_directory = /var/spool/asterisk/monitor_dual_channel/

دقت شود ورژن سیموتل باید version:6.8.37 یا version:7.2.3 به بالا باید باشد
نکته: در صورتی که نیاز است این صدا بیشتر از یک روز نگهداری شود
عدد این پارامتر را به تعداد روز افزایش دهید
dual_channel_record_remove_after_day = X

1 پسندیده

راهنمای توسعه‌دهندگان (API)

پس از فعال‌سازی تنظیمات بالا، برای دانلود فایل‌های صوتی تفکیک شده، باید طی دو مرحله عمل کنید:
۱. دریافت نام فایل صوتی (Filename)
۲. دانلود فایل با استفاده از API

مرحله ۱: دریافت نام فایل صوتی

برای دانلود، شما نیاز به نام فایل (Record name فایل ضبط شده) دارید. این نام را می‌توانید از دو روش به دست آورید:

  • روش خودکار (پیشنهادی): استفاده از Webhook. زمانی که ایونت CDR ارسال می‌شود، نام فایل در آن موجود است.
  • روش دستی: استفاده از Search API. می‌توانید در گزارشات تماس جستجو کرده و نام فایل را استخراج کنید.

مرحله ۲: دانلود فایل تفکیک شده

پس از بدست آوردن نام فایل (مثلاً 20200921_1600675211.10033.1.mp3)، از متد dual_channel_download استفاده کنید.

در درخواست زیر، پارامتر channel تعیین می‌کند کدام فایل‌ها دانلود شوند:

  • caller: صدای تماس‌گیرنده (یک طرف مکالمه)
  • callee: صدای پاسخ‌دهنده (طرف دیگر مکالمه)
  • mixed: صدای میکس شده معمولی

نمونه کد PHP (cURL)

در این مثال هر سه نوع فایل درخواست شده است:

<?php

$curl = curl_init();

// تنظیمات درخواست
curl_setopt_array($curl, array(
  CURLOPT_URL => 'http://YOUR_SIMOTEL_IP:80/api/v4/reports/audio/dual_channel_download',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30, // زمان تایم‌اوت را برای فایل‌های حجیم بررسی کنید
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  // بدنه درخواست
  CURLOPT_POSTFIELDS => json_encode([
      "file" => "20200921_1600675211.10033.1.mp3", // نام فایل دریافتی از CDR
      "channel" => ["mixed", "caller", "callee"]   // کانال‌های مورد نیاز
  ]),
  // هدرهای احراز هویت
  CURLOPT_HTTPHEADER => array(
    'X-APIKEY: YOUR_API_KEY_HERE', 
    'Content-Type: application/json',
    'Authorization: Basic YOUR_BASIC_AUTH_HERE'
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  // خروجی شامل لینک دانلود یا دیتای باینری فایل‌ها خواهد بود (بسته به تنظیمات API)
  echo $response;
}
?>

با استفاده از خروجی این API، می‌توانید صدای اپراتور و مشتری را به صورت جداگانه به مدل‌های هوش مصنوعی خود داده و دقت پردازش متن (Transcription) را به طرز چشمگیری افزایش دهید.

1 پسندیده