نمایش نتایج: از شماره 1 تا 1 از مجموع 1
سپاس ها 5سپاس
  • 5 توسط omid_mohagerani

موضوع: تابع تلفظ اعداد به فارسی در Asterisk

  
  1. #1
    نام حقيقي: امید مهاجرانی

    عضو عادی
    تاریخ عضویت
    Dec 2005
    محل سکونت
    Tehran
    نوشته
    782
    سپاسگزاری شده
    725
    سپاسگزاری کرده
    79

    تابع تلفظ اعداد به فارسی در Asterisk

    قابلیت ارتباط Asterisk با زبان های برنامه نوسی رایج و پرکاربردی مثل Python ، PHP ، Java یا Perl قدرت فوق العاده ای به اون بخشیده . چند وقت پیش تو یک پروژه نیاز به فارسی سازی بخش هایی از Asterisk از جمله تلفظ اعداد طبق دستور زبان فارسی شد .در این پست تابع persiansaynum() که برای تلفظ اعداد به فارسی در Asterisk نوشتم را قراردادم . فقط کافی است اعدادی را که دربرنامه می بینید در دایکتوری persianvoice قرار بدید و آنرا در مسیر /var/lib/asterisk/sounds قرار بدید . برای اجرای اسکریپت نیاز به نصب PHPAGI دارید که می توانید بسته را از اینجا دانلود و نصب کنید . اسکریپت را در مسیر /var/lib/asterisk/agi-bin قرار بدید و دسترسی را تنظیم کنید .

    کد:
    #!/usr/bin/php -q
    #######################################
    ###### linux-notes.blogfa.com #########
    #omid dot mohajerani at gmail dot com #
    #######################################
    <?
    set_time_limit(30);
    require('phpagi.php');
    error_reporting(E_ALL);
    
    $agi = new AGI();
    $agi->answer();
    
    
    PersianSayNumber($agi,555005500);
    
    
    
    
    //////////////////////////////////////////////////
    //////////////////////////////////////////////////
    //////// PersianSayNumber Function ///////////////
    ////// for pronouncing numbers in  ///////////////
    ///////         PERSIAN            ///////////////
    //////////////////////////////////////////////////
    //////////////////////////////////////////////////
    
    function PersianSayNumber($agi,$a)
    {
    /////////////////////////////
    ////// if 0<a<19 ///////////
    
     if ( $a>=0 && $a<=19 )
     {
       playnum($agi,$a);
     }           
    
    /////////////////////////////
    //////if 20<a<99 ///////////
    
     elseif($a>=20 && $a<=99)
     {
      if (($a % 10) == 0)
          {
     
       playnum($agi,$a);
      
          }//end if 
      else
           {
           playnumo($agi,(int)($a / 10)*10 );
           PersianSayNumber ($agi,$a % 10);
           }
     }         
    
    ///////////////////////////
    //////if 100<a<999 ////////
      
     elseif($a>=100 && $a<=999)
     {
       if (($a % 100) == 0)
          {
    
       playnum($agi,$a);
    
          }//end if
      else
           {
           playnumo($agi,(int)($a / 100)*100 );
           PersianSayNumber ($agi,$a % 100);
           }  
    
     }
    
    /////////////////////////////
    /////if 1000<a<999999 ///////
    
     elseif($a>=1000 && $a<=999999)
     {
       if (($a % 1000) == 0)
          {
          PersianSayNumber($agi,(int)($a / 1000));
          $agi->stream_file("persianvoice/1000");
          
          }//end if
      else
           {
           PersianSayNumber($agi,(int)($a / 1000));
           $agi->stream_file("persianvoice/1000o");
           PersianSayNumber ($agi,$a % 1000);
           }
    
     }
    
    ////////////////////////////////
    //if 1000000<a<999999999 //////
    
     elseif($a>=1000000 && $a<=999999999)
     {
       if (($a % 1000000) == 0)
          {
          PersianSayNumber($agi,(int)($a / 1000000));
          $agi->stream_file("persianvoice/1000000");
    
          }//end if
      else
           {
           PersianSayNumber($agi,(int)($a / 1000000));
           $agi->stream_file("persianvoice/1000000o");
           PersianSayNumber ($agi,$a % 1000000);
           }
    
     }
    
    } // function PersianSayNumber()
    
    
    /////////////////////////////////////////////////////
    //////// Function Playnum for Pronouncing    /////////
    //////// 1-19 , 20,30,40,50,60,70,80,90,100 /////////
    ///////  200,300,400,500,600,700,800,900    /////////
    ///////////////////////////////////////////////////// 
    
    
    function playnum($agi,$s)
    {
    switch ($s)
    {
    case 1 :
        $agi->stream_file("persianvoice/1");
        break;
    case 2 :
        $agi->stream_file("persianvoice/2");
        break;
    case 3 :
        $agi->stream_file("persianvoice/3");
        break;
    case 4 :
        $agi->stream_file("persianvoice/4");
        break;
    case 5 :
        $agi->stream_file("persianvoice/5");
        break;
    case 6 :
        $agi->stream_file("persianvoice/6");
        break;
    case 7 :
        $agi->stream_file("persianvoice/7");
        break;
    case 8 :
        $agi->stream_file("persianvoice/8");
        break;
    case 9 :
        $agi->stream_file("persianvoice/9");
        break;
    case 10 :
        $agi->stream_file("persianvoice/10");
        break;
    case 11 :
        $agi->stream_file("persianvoice/11");
        break;
    case 12 :
        $agi->stream_file("persianvoice/12");
        break;
    case 13 :
        $agi->stream_file("persianvoice/13");
        break;
    case 14 :
        $agi->stream_file("persianvoice/14");
        break;
    case 15 :
        $agi->stream_file("persianvoice/15");
        break;
    case 16 :
        $agi->stream_file("persianvoice/16");
        break;
    case 17 :
        $agi->stream_file("persianvoice/17");
        break;
    case 18 :
        $agi->stream_file("persianvoice/18");
        break;
    case 19 :
        $agi->stream_file("persianvoice/19");
        break;
    case 20 :
        $agi->stream_file("persianvoice/20");
        break;
    case 30 :
        $agi->stream_file("persianvoice/30");
        break;
    case 40 :
        $agi->stream_file("persianvoice/40");
        break;
    case 50 :
        $agi->stream_file("persianvoice/50");
        break;
    case 60 :
        $agi->stream_file("persianvoice/60");
        break;
    case 70 :
        $agi->stream_file("persianvoice/70");
        break;
    case 80 :
        $agi->stream_file("persianvoice/80");
        break;
    case 90 :
        $agi->stream_file("persianvoice/90");
        break;
    case 100 :
        $agi->stream_file("persianvoice/100");
        break;
    case 200 :
        
        $agi->stream_file("persianvoice/200");
        break;
    case 300 :
        $agi->stream_file("persianvoice/300");
        break;
    case 400 :
        $agi->stream_file("persianvoice/400");
        break;
    case 500 :
        $agi->stream_file("persianvoice/500");
        break;
    case 600 :
        $agi->stream_file("persianvoice/600");
        break;
    case 700 :
        $agi->stream_file("persianvoice/700");
        break;
    case 800 :
        $agi->stream_file("persianvoice/800");
        break;
    case 900 :
        $agi->stream_file("persianvoice/900");
        break;
        
    }
    }
    
    /////////////////////////////////////////////////////
    //////// Function Playnumo for Pronuncing     ///////
    //////// 10o,20o,30o,40o,50o,60o,70o,80o,90o  ///////
    ///////  100o,200o,300o,400o,500o,600o,700o   ///////
    ///////               800o,900o               ///////
    ///////////////////////////////////////////////////// 
    
    
    function playnumo($agi,$z)
    {
    switch ($z)
    {
    
    case 10 :
        $agi10->stream_file("persianvoice/10o");
        break;
    case 20 :
        $agi->stream_file("persianvoice/20o");
        break;
    case 30 :
        $agi->stream_file("persianvoice/30o");
        break;
    case 40 :
        $agi->stream_file("persianvoice/40o");
        break;
    case 50 :
        $agi->stream_file("persianvoice/50o");
        break;
    case 60 :
        $agi->stream_file("persianvoice/60o");
        break;
    case 70 :
        $agi->stream_file("persianvoice/70o");
        break;
    case 80 : 
        $agi->stream_file("persianvoice/80o");
        break;
    case 90 : 
        $agi->stream_file("persianvoice/90o");
        break;
    case 100 :
        $agi->stream_file("persianvoice/100o");
        break;
    case 200 :
        $agi->stream_file("persianvoice/200o");
        break;
    case 300 :
        $agi->stream_file("persianvoice/300o");
        break;
    case 400 :
        $agi->stream_file("persianvoice/400o");
        break;
    case 500 :
        $agi->stream_file("persianvoice/500o");
        break;
    case 600 :
        $agi->stream_file("persianvoice/600o");
        break;
    case 700 :
        $agi->stream_file("persianvoice/700o");
        break;
    case 800 :
        $agi->stream_file("persianvoice/800o");
        break;
    case 900 :
        $agi->stream_file("persianvoice/900o");
        break;
    
    } //end switch
    
    } // end function playnumo()
    $agi->hangup();
    
    
    ?>




    موضوعات مشابه:
    ویرایش توسط omid_mohagerani : 2009-06-02 در ساعت 12:27 PM
    Hakimi، SADEGH65، M-r-r و 2 نفر دیگر سپاسگزاری کرده‌اند.

کلمات کلیدی در جستجوها:

Asterisk فارسی

اعداد فارسی asterisk

خواندن اعداد فارسی استریسک

تلفظ اعداد ارمنی

زبان فارسی در استریسک

linux-notes omid mohajerani

تابع استريسك

اسپل اعداد انگلیسی

تلفظ اعداد فارسی

Asterisk

http://forum.persiannetworks.com/f75/t25195.html

فارسی asterisk

عدد 1 تا 10 به فارسیفارسی سازی اعداد استریسکاسپل هعداد انگلیسیتلفظ اعداد 1 تا 9 فارسيزبان فارسی در asteriskاعداد asterisk اعداد فارسی asterisk script varlibasterisksoundPersianSayNumberعدد1تا10به فارسیتابع پخش اعداد در استریسکتلفظ در استریسکفارسی سازی استریسکنرم افزارتلفظ اعداد به فارسی

برچسب برای این موضوع

مجوز های ارسال و ویرایش

  • شما نمی توانید موضوع جدید ارسال کنید
  • شما نمی توانید به پست ها پاسخ دهید
  • شما نمی توانید فایل پیوست ضمیمه کنید
  • شما نمی توانید پست های خود را ویرایش کنید
  •