Список форумов Asterisk Forum Asterisk Forum
The Asterisk Open Source PBX - Russian Community
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ПравилаПравила   ГруппыГруппы   ИзбранноеИзбранное    LinksСсылки   РегистрацияРегистрация 
 RSSRSS   ПрофильПрофиль   Войти и проверить личные сообщения   ВходВход 

say.conf [RU]
На страницу 1, 2, 3  След.
 
Список форумов Asterisk Forum -> Asterisk IP PBX    вывод темы на печать
Предыдущая тема :: Следующая тема  
Автор Сообщение
anest
Модератор


Зарегистрирован:
28.11.2004
Сообщения: 5636

Статус: Оффлайн 

СообщениеДобавлено: Чт Янв 11, 2007 20:25    Заголовок сообщения: say.conf [RU]

Ктонить поделится сабжем?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
IgorG
Модератор


Зарегистрирован:
21.11.2005
Сообщения: 1054
Откуда: Россия, Омск

Статус: Оффлайн 

СообщениеДобавлено: Пт Янв 12, 2007 04:38    Заголовок сообщения:

Тоже интересуюсь, а то я начал заниматься, но с такой дикой нехваткой времени... если кто сделал то можно запостить так же в багтрекер, чтобы включили в последующие версии.
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name Jabber ID
anest
Модератор


Зарегистрирован:
28.11.2004
Сообщения: 5636

Статус: Оффлайн 

СообщениеДобавлено: Пт Янв 12, 2007 15:31    Заголовок сообщения:

тупо скопировал секцию [it] в [ru]
вроде все сходится там.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
IgorG
Модератор


Зарегистрирован:
21.11.2005
Сообщения: 1054
Откуда: Россия, Омск

Статус: Оффлайн 

СообщениеДобавлено: Пт Янв 12, 2007 16:34    Заголовок сообщения:

Только там произношение родов нету, в любом случае его доделывать Smile
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name Jabber ID
IgorG
Модератор


Зарегистрирован:
21.11.2005
Сообщения: 1054
Откуда: Россия, Омск

Статус: Оффлайн 

СообщениеДобавлено: Сб Янв 13, 2007 07:24    Заголовок сообщения:

Первоначальный черновик настройки. Получился большой, над оптимизацией подумаю позже. Сделал пока только произношение числительных Smile Тестируйте и выкладывайте результаты. если что-то произносится не так, как хотелось бы, то выкладывайте результат , указывая:
1) Что тестировали (дата, числительное, дата)
2) Значение произносимой величины
3) Что было произнесено, как должно произноситься

Настройки делались на основе английского произношения
Вот настройки в say.conf:
Код:

[ru-base](!)
    _[n]um:0. => num:${SAY:1}
    _[n]um:X  => digits/${SAY}
    ; Tens
    _[n]um:1X         => digits/${SAY}
    _[n]um:[2-9]0     =>  digits/${SAY}
    _[n]um:[2-9][1-9] =>  digits/${SAY:0:1}0, num:${SAY:1}
    ; Hundreds
    _[n]um:[1-9]00    => digits/${SAY}
    _[n]um:XXX        => num:${SAY:0:1}00, num:${SAY:1}
    ; Thousands
    _[n]um:1XXX       => num:${SAY:0:1}, digits/thousand, num:${SAY:1}
    _[n]um:[2-4]XXX   => num:${SAY:0:1}, digits/thousands-i, num:${SAY:1}
    _[n]um:[5-9]XXX   => num:${SAY:0:1}, digits/thousands, num:${SAY:1}
    _[n]um:X1XXX      => num:${SAY:0:2}, digits/thousand, num:${SAY:2}
    _[n]um:X[2-4]XXX  => num:${SAY:0:2}, digits/thousands-i, num:${SAY:2}
    _[n]um:X[5-9]XXX  => num:${SAY:0:2}, digits/thousands, num:${SAY:2}
    _[n]um:XX1XXX     => num:${SAY:0:3}, digits/thousand, num:${SAY:3}
    _[n]um:XX[2-4]XXX => num:${SAY:0:3}, digits/thousands-i, num:${SAY:3}
    _[n]um:XX[5-9]XXX => num:${SAY:0:3}, digits/thousands, num:${SAY:3}
    ; Millions
    _[n]um:1XXXXXX        => num:${SAY:0:1}, digits/million, num:${SAY:1}
    _[n]um:[2-4]XXXXXX    => num:${SAY:0:1}, digits/millions-i, num:${SAY:1}
    _[n]um:[5-9]XXXXXX    => num:${SAY:0:1}, digits/millions, num:${SAY:1}
    _[n]um:X1XXXXXX       => num:${SAY:0:2}, digits/million, num:${SAY:2}
    _[n]um:X[2-4]XXXXXX   => num:${SAY:0:2}, digits/millions-i, num:${SAY:2}
    _[n]um:X[5-9]XXXXXX   => num:${SAY:0:2}, digits/millions, num:${SAY:2}
    _[n]um:XX1XXXXXX      => num:${SAY:0:3}, digits/million, num:${SAY:3}
    _[n]um:XX[2-4]XXXXXX  => num:${SAY:0:3}, digits/millions-i, num:${SAY:3}
    _[n]um:XX[5-9]XXXXXX  => num:${SAY:0:3}, digits/millions, num:${SAY:3}
    ; Billions
    _[n]um:1XXXXXXXXX     => num:${SAY:0:1}, digits/billion, num:${SAY:1}
    _[n]um:[2-4]XXXXXXXXX => num:${SAY:0:1}, digits/billions-i, num:${SAY:1}
    _[n]um:[5-9]XXXXXXXXX => num:${SAY:0:1}, digits/billions, num:${SAY:1}
    _[n]um:X1XXXXXXXXX    => num:${SAY:0:2}, digits/billion, num:${SAY:2}
    _[n]um:X[2-4]XXXXXXXXX => num:${SAY:0:2}, digits/billions-i, num:${SAY:2}
    _[n]um:X[5-9]XXXXXXXXX => num:${SAY:0:2}, digits/billions, num:${SAY:2}
    _[n]um:XX1XXXXXXXXX    => num:${SAY:0:3}, digits/billion, num:${SAY:3}
    _[n]um:XX[2-4]XXXXXXXXX => num:${SAY:0:3}, digits/billions-i, num:${SAY:3}
    _[n]um:XX[5-9]XXXXXXXXX => num:${SAY:0:3}, digits/billions, num:${SAY:3}

    ; enumeration
    _e[n]um:X => digits/h-${SAY}
    _e[n]um:1X => digits/h-${SAY}
    _e[n]um:[2-9]0 => digits/h-${SAY}
    _e[n]um:[2-9][1-9] => num:${SAY:0:1}0, digits/h-${SAY:1}
    _e[n]um:[1-9]XX => num:${SAY:0:1}, digits/hundred, enum:${SAY:1}

[ru](ru-base,date-base,digit-base)
    _datetime::. => date:AdBY 'digits/at' IMp:${SAY}
    _date::. => date:AdBY:${SAY}
    _time::. => date:IMp:${SAY}


Вот кусок диалплана для тестирования:

[config:1:36451aa2c8]
[globals]
SAY_NUMBER_BEGIN=10
SAY_NUMBER_STEP= 1
SAY_DATE_BEGIN=10000 ; Unixtime
SAY_DATE_STEP=500 ; Unixtime


[say]
; Russian
exten => 787,1,Answer
exten => 787,n,Wait(1)
exten => 787,n,Set(SAY_NUMBER=${SAY_NUMBER_BEGIN})
exten => 787,n,Set(CHANNEL(language)=ru)
exten => 787,n,SayNumber(${SAY_NUMBER})
exten => 787,n,Wait(1)
exten => 787,n,Set(SAY_NUMBER=$[${SAY_NUMBER} + ${SAY_NUMBER_STEP}])
exten => 787,n,GoTo(787,4)

exten => 788,1,Answer
exten => 788,n,Wait(1)
exten => 788,n,Set(SAY_DATE=${SAY_DATE_BEGIN})
exten => 788,n,Set(CHANNEL(language)=ru)
exten => 788,n,SayUnixtime(${SAY_DATE})
exten => 788,n,Wait(1)
exten => 788,n,Set(SAY_DATE=$[${SAY_DATE} + ${SAY_DATE_STEP}])
exten => 788,n,GoTo(788,4)
[/config:1:36451aa2c8]


P.S. Все накидано в спешке, работоспособность не гарантирую. Как будет подтверждено что, что-то из этого вообще работает, то вынесем в первый пост.

_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru


Последний раз редактировалось: IgorG (Пн Янв 15, 2007 05:35)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name Jabber ID
IgorG
Модератор


Зарегистрирован:
21.11.2005
Сообщения: 1054
Откуда: Россия, Омск

Статус: Оффлайн 

СообщениеДобавлено: Сб Янв 13, 2007 07:28    Заголовок сообщения:

PS. Обнаружил что в консоли есть команда say load new, возможно она нужна для подключения нового стиля произношения. Пока что я не имею возможности сам тестировать написанное, так как нет времени настраивать домашнюю машину...
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name Jabber ID
anest
Модератор


Зарегистрирован:
28.11.2004
Сообщения: 5636

Статус: Оффлайн 

СообщениеДобавлено: Сб Янв 13, 2007 13:04    Заголовок сообщения:

*-1.2: SetLanguage(ru) is deprecated.
Use Set(LANGUAGE()=ru)

*-1.4: LANGUAGE() is deprecated; use CHANNEL(language) instead.

Shocked каждую версию будут в слова играться? Confused

tip:
тепреь это будет выглядеть так

exten => 787,n,Set(CHANNEL(language)=ru)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
IgorG
Модератор


Зарегистрирован:
21.11.2005
Сообщения: 1054
Откуда: Россия, Омск

Статус: Оффлайн 

СообщениеДобавлено: Сб Янв 13, 2007 13:25    Заголовок сообщения:

Да, уж у них в примерах в текущем релизе дан неправильный образец диалплана... Ужас...
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name Jabber ID
IgorG
Модератор


Зарегистрирован:
21.11.2005
Сообщения: 1054
Откуда: Россия, Омск

Статус: Оффлайн 

СообщениеДобавлено: Вт Янв 16, 2007 08:02    Заголовок сообщения:

Последний вариант: =)

Код:

[ru-base](!)
    _[n]um:0. => num:${SAY:1}
    _[n]um:X  => digits/${SAY}
    ; Tens
    _[n]um:1X         => digits/${SAY}
    _[n]um:[2-9]0     =>  digits/${SAY}
    _[n]um:[2-9][1-9] =>  digits/${SAY:0:1}0, num:${SAY:1}
    ; Hundreds
    _[n]um:[1-9]00    => digits/${SAY}
    _[n]um:XXX        => num:${SAY:0:1}00, num:${SAY:1}
    ; Thousands
    _[n]um:1XXX       => num:${SAY:0:1}, digits/thousand, num:${SAY:1}
    _[n]um:[2-4]XXX   => num:${SAY:0:1}, digits/thousands-i, num:${SAY:1}
    _[n]um:[5-9]XXX   => num:${SAY:0:1}, digits/thousands, num:${SAY:1}
    _[n]um:X1XXX      => num:${SAY:0:2}, digits/thousand, num:${SAY:2}
    _[n]um:X[2-4]XXX  => num:${SAY:0:2}, digits/thousands-i, num:${SAY:2}
    _[n]um:X[5-9]XXX  => num:${SAY:0:2}, digits/thousands, num:${SAY:2}
    _[n]um:XX1XXX     => num:${SAY:0:3}, digits/thousand, num:${SAY:3}
    _[n]um:XX[2-4]XXX => num:${SAY:0:3}, digits/thousands-i, num:${SAY:3}
    _[n]um:XX[5-9]XXX => num:${SAY:0:3}, digits/thousands, num:${SAY:3}
    ; Millions
    _[n]um:1XXXXXX        => num:${SAY:0:1}, digits/million, num:${SAY:1}
    _[n]um:[2-4]XXXXXX    => num:${SAY:0:1}, digits/millions-i, num:${SAY:1}
    _[n]um:[5-9]XXXXXX    => num:${SAY:0:1}, digits/millions, num:${SAY:1}
    _[n]um:X1XXXXXX       => num:${SAY:0:2}, digits/million, num:${SAY:2}
    _[n]um:X[2-4]XXXXXX   => num:${SAY:0:2}, digits/millions-i, num:${SAY:2}
    _[n]um:X[5-9]XXXXXX   => num:${SAY:0:2}, digits/millions, num:${SAY:2}
    _[n]um:XX1XXXXXX      => num:${SAY:0:3}, digits/million, num:${SAY:3}
    _[n]um:XX[2-4]XXXXXX  => num:${SAY:0:3}, digits/millions-i, num:${SAY:3}
    _[n]um:XX[5-9]XXXXXX  => num:${SAY:0:3}, digits/millions, num:${SAY:3}
    ; Billions
    _[n]um:1XXXXXXXXX     => num:${SAY:0:1}, digits/billion, num:${SAY:1}
    _[n]um:[2-4]XXXXXXXXX => num:${SAY:0:1}, digits/billions-i, num:${SAY:1}
    _[n]um:[5-9]XXXXXXXXX => num:${SAY:0:1}, digits/billions, num:${SAY:1}
    _[n]um:X1XXXXXXXXX    => num:${SAY:0:2}, digits/billion, num:${SAY:2}
    _[n]um:X[2-4]XXXXXXXXX => num:${SAY:0:2}, digits/billions-i, num:${SAY:2}
    _[n]um:X[5-9]XXXXXXXXX => num:${SAY:0:2}, digits/billions, num:${SAY:2}
    _[n]um:XX1XXXXXXXXX    => num:${SAY:0:3}, digits/billion, num:${SAY:3}
    _[n]um:XX[2-4]XXXXXXXXX => num:${SAY:0:3}, digits/billions-i, num:${SAY:3}
    _[n]um:XX[5-9]XXXXXXXXX => num:${SAY:0:3}, digits/billions, num:${SAY:3}

    ; enumeration
    _e[n]um:X[mfn] => digits/h-${SAY}
    _e[n]um:1X[mfn] => digits/h-${SAY}
    _e[n]um:[2-9]0[mfn] => digits/h-${SAY}
    _e[n]um:[2-9][1-9][mfn] => num:${SAY:0:1}0, digits/h-${SAY:1}
    _e[n]um:[1-9]XX[mfn] => num:${SAY:0:1}, digits/hundred, enum:${SAY:1}

[ru](ru-base,digit-base)
    _date:[Y]:.  => enum:${SAY:0:4}m            ; year, [12]xxx
    _date:[Bb]:. => digits/mon-$[${SAY:4:2}-1]  ; month name, 0..11
    _date:[Aa]:. => digits/day-${SAY:16:1}      ; day of week
    _date:[de]:. => enum:${SAY:6:2}n            ; day of month
    _date:[hH]:. => num:${SAY:8:2}              ; hour
    _date:[I]:.  => num:$[${SAY:8:2} % 12]      ; hour 0-12
    _date:[M]:.  => num:${SAY:10:2}             ; minute
    _date:[pP]:. => digits/p-m  ; am pm
    _date:[S]:.  => num:${SAY:13:2}             ; seconds

    _datetime::. => date:AdBY 'digits/at' IM:${SAY}
    _date::. => date:AdBY:${SAY}
    _time::. => date:IM:${SAY}

_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name Jabber ID
shtorm512



Зарегистрирован:
06.09.2007
Сообщения: 30

Статус: Оффлайн 

СообщениеДобавлено: Ср Окт 03, 2007 01:49    Заголовок сообщения:

Единицы, десятки, сотни и минус не произносит - нормально работают, а вот с тысячами какой то косяк......все равно по английской логике работают! Вопрос - где еще добавить строки, чтобы после произнесенной цифры он в правильном падеже произносил "рубль, рубля, рублей"??? Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
IgorG
Модератор


Зарегистрирован:
21.11.2005
Сообщения: 1054
Откуда: Россия, Омск

Статус: Оффлайн 

СообщениеДобавлено: Ср Окт 03, 2007 04:43    Заголовок сообщения:

Ой, давно я за это не брался, нужно будет доработать и включить в транк. А насчет рублей рекомендую сделать макрос для произношения сумм =)
рубль, рубля, рублей произносится в зависимости от последней цифры.

_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name Jabber ID
shtorm512



Зарегистрирован:
06.09.2007
Сообщения: 30

Статус: Оффлайн 

СообщениеДобавлено: Чт Окт 04, 2007 00:57    Заголовок сообщения:

Сделал я произношения рубля, рублей, рубль. Только путем исполнения Перлового скрипта, но все равно работает. Так же и для копеек сделалCool
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
anest
Модератор


Зарегистрирован:
28.11.2004
Сообщения: 5636

Статус: Оффлайн 

СообщениеДобавлено: Чт Окт 04, 2007 01:18    Заголовок сообщения:

shtorm512, не вижу аттача Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
IgorG
Модератор


Зарегистрирован:
21.11.2005
Сообщения: 1054
Откуда: Россия, Омск

Статус: Оффлайн 

СообщениеДобавлено: Чт Окт 04, 2007 04:40    Заголовок сообщения:

В виде макроса примерно так:

Код:
[macro-saycountru]
exten => s,1,NoOp(Say Word In Russian)
exten => s,n,GotoIf($[${ARG4}%10 = 1]:one)
exten => s,n,GotoIf($[${ARG4}%10 = 2]:two)
exten => s,n,GotoIf($[${ARG4}%10 = 3]:two)
exten => s,n,GotoIf($[${ARG4}%10 = 4]:two)
exten => s,n,Goto(three)
exten => s,n(one),Playback(${ARG1})
exten => s,n(two),Playback(${ARG2})
exten => s,n(three),Playback(${ARG3})


Не тестировал, но как-то так. Использовать так:

Код:
exten => _X.,1,Macro(saycountru,rubl,rublya,rubley,145)

_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name Jabber ID
Ded
Guru


Зарегистрирован:
10.01.2005
Сообщения: 4428
Откуда: Road Town, Tortola, British Virgin Islands

Статус: Оффлайн 

СообщениеДобавлено: Пт Дек 21, 2007 13:26    Заголовок сообщения:

IgorG писал(а):
PS. Обнаружил что в консоли есть команда say load new, возможно она нужна для подключения нового стиля произношения.

Ahtung! Опасная команды, вводит в заблуждение. Она хоть и перечитывает конф, но пеосле этого читает тишину.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
IgorG
Модератор


Зарегистрирован:
21.11.2005
Сообщения: 1054
Откуда: Россия, Омск

Статус: Оффлайн 

СообщениеДобавлено: Пт Дек 21, 2007 18:00    Заголовок сообщения:

Не понял, что именно не так? Если можно пошпгово, с конфигом и выводом из консоли. Если что не так - подправлю.
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name Jabber ID
Ded
Guru


Зарегистрирован:
10.01.2005
Сообщения: 4428
Откуда: Road Town, Tortola, British Virgin Islands

Статус: Оффлайн 

СообщениеДобавлено: Пт Дек 21, 2007 18:27    Заголовок сообщения:

Ковыряюсь в say.conf.
Делаю там изменения, чтобы услышать эти изменения делаю say load new.
После этого либо глохнет
-- Executing [23@say:4] Set("SIP/202-09bcb0d0", "CHANNEL(language)=de") in new stack
-- Executing [23@say:5] Goto("SIP/202-09bcb0d0", "23|3") in new stack
-- Goto (say,23,3)
-- Executing [23@say:3] SayNumber("SIP/202-09bcb0d0", "23") in new stack ; вот тут тишина
== Spawn extension (say, 23, 3) exited non-zero on 'SIP/202-09bcb0d0'

Пока что вопросов больше, чем ответов. Не понимаю, почему не принимаются изменения в say.conf.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
IgorG
Модератор


Зарегистрирован:
21.11.2005
Сообщения: 1054
Откуда: Россия, Омск

Статус: Оффлайн 

СообщениеДобавлено: Пт Дек 21, 2007 19:13    Заголовок сообщения:

А до этого какой оежим, так же new? Вообще конфиг подгружается при загрузке app_playback.so. Наверное нужно добавить комманду say reload? Вообще комманда say load как-то не логична, не совсем понятно по названию что она делает.

Ded, в общем предлагай как должно работать, я в понедельник покручу.

_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name Jabber ID
Braams



Зарегистрирован:
03.08.2006
Сообщения: 83

Статус: Оффлайн 

СообщениеДобавлено: Вт Фев 19, 2008 12:17    Заголовок сообщения:

Если кому интересно - моя версия say.conf, числительные, с поддержкой женского рода (кусочек для num)
Код:

[ru-base](!)
    _[n]um:0. => num:${SAY:1}

    _[n]um:X  => digits/${SAY}
    _[n]um:[1-2]f  => digits/${SAY:0:1}f
    _[n]um:[3-9]f  => digits/${SAY:0:1}

    ; Tens
    _[n]um:1X       => digits/${SAY:0:2}
    _[n]um:1Xf      => digits/${SAY:0:2}

    _[n]um:[2-9]0       =>  digits/${SAY:0:2}
    _[n]um:[2-9]0f      =>  digits/${SAY:0:2}

    _[n]um:[2-9][1-2]   =>  digits/${SAY:0:1}0, num:${SAY:1}
    _[n]um:[2-9][1-2]f  =>  digits/${SAY:0:1}0, num:${SAY:1}

    _[n]um:[2-9][3-9]   =>  digits/${SAY:0:1}0, num:${SAY:1}
    _[n]um:[2-9][3-9]f  =>  digits/${SAY:0:1}0, num:${SAY:1}


    ; Hundreds
    _[n]um:[1-9]00    => digits/${SAY:0:1}00
    _[n]um:[1-9]00f    => digits/${SAY:0:1}00

    _[n]um:XXX        => num:${SAY:0:1}00, num:${SAY:1}
    _[n]um:XXXf        => num:${SAY:0:1}00, num:${SAY:1}

    ; Thousands
    _[n]um:1XXX       => num:${SAY:0:1}f, digits/thousand1, num:${SAY:1}
    _[n]um:1XXXf       => num:${SAY:0:1}f, digits/thousand1, num:${SAY:1}

    _[n]um:[2-4]XXX       => num:${SAY:0:1}f, digits/thousand2, num:${SAY:1}
    _[n]um:[2-4]XXXf       => num:${SAY:0:1}f, digits/thousand2, num:${SAY:1}
   _[n]um:[5-9]XXX   => num:${SAY:0:1}, digits/thousand5, num:${SAY:1}
    _[n]um:[5-9]XXXf   => num:${SAY:0:1}, digits/thousand5, num:${SAY:1}


    _[n]um:1XXXX  => num:${SAY:0:2}, digits/thousand5, num:${SAY:2}
    _[n]um:1XXXXf  => num:${SAY:0:2}, digits/thousand5, num:${SAY:2}

    _[n]um:[2-9]1XXX  => num:${SAY:0:2}f, digits/thousand1, num:${SAY:2}
    _[n]um:[2-9]1XXXf  => num:${SAY:0:2}f, digits/thousand1, num:${SAY:2}

    _[n]um:[2-9][2-4]XXX  => num:${SAY:0:2}f, digits/thousand2, num:${SAY:2}
    _[n]um:[2-9][2-4]XXXf  => num:${SAY:0:2}f, digits/thousand2, num:${SAY:2}

    _[n]um:[2-9][5-9]XXX  => num:${SAY:0:2}, digits/thousand5, num:${SAY:2}
    _[n]um:[2-9][5-9]XXXf  => num:${SAY:0:2}, digits/thousand5, num:${SAY:2}


    _[n]um:X1XXXX  => num:${SAY:0:3}, digits/thousand5, num:${SAY:3}
    _[n]um:X1XXXXf  => num:${SAY:0:3}, digits/thousand5, num:${SAY:3}

    _[n]um:X[2-9]1XXX  => num:${SAY:0:3}f, digits/thousand1, num:${SAY:3}
    _[n]um:X[2-9]1XXXf  => num:${SAY:0:3}f, digits/thousand1, num:${SAY:3}

    _[n]um:X[2-9][2-4]XXX  => num:${SAY:0:3}f, digits/thousand2, num:${SAY:3}
    _[n]um:X[2-9][2-4]XXXf  => num:${SAY:0:3}f, digits/thousand2, num:${SAY:3}

    _[n]um:X[2-9][5-9]XXX  => num:${SAY:0:3}, digits/thousand5, num:${SAY:3}
    _[n]um:X[2-9][5-9]XXXf  => num:${SAY:0:3}, digits/thousand5, num:${SAY:3}

;my millions
    _[n]um:1XXXXXX       => num:${SAY:0:1}, digits/million1, num:${SAY:1}
    _[n]um:1XXXXXXf      => num:${SAY:0:1}, digits/million1, num:${SAY:1}

    _[n]um:[2-4]XXXXXX       => num:${SAY:0:1}, digits/million2, num:${SAY:1}
    _[n]um:[2-4]XXXXXXf      => num:${SAY:0:1}, digits/million2, num:${SAY:1}

    _[n]um:[5-9]XXXXXX   => num:${SAY:0:1}, digits/million5, num:${SAY:1}
    _[n]um:[5-9]XXXXXXf  => num:${SAY:0:1}, digits/million5, num:${SAY:1}


    _[n]um:1XXXXXXX   => num:${SAY:0:2}, digits/million5, num:${SAY:2}
    _[n]um:1XXXXXXXf  => num:${SAY:0:2}, digits/million5, num:${SAY:2}

    _[n]um:[2-9]1XXXXXX   => num:${SAY:0:2}, digits/million1, num:${SAY:2}
    _[n]um:[2-9]1XXXXXXf  => num:${SAY:0:2}, digits/million1, num:${SAY:2}

    _[n]um:[2-9][2-4]XXXXXX   => num:${SAY:0:2}, digits/million2, num:${SAY:2}
    _[n]um:[2-9][2-4]XXXXXXf  => num:${SAY:0:2}, digits/million2, num:${SAY:2}

    _[n]um:[2-9][5-9]XXXXXX  => num:${SAY:0:2}, digits/million5, num:${SAY:2}
    _[n]um:[2-9][5-9]XXXXXXf  => num:${SAY:0:2}, digits/million5, num:${SAY:2}

    _[n]um:X1XXXXXXX  => num:${SAY:0:3}, digits/million5, num:${SAY:3}
    _[n]um:X1XXXXXXXf  => num:${SAY:0:3}, digits/million5, num:${SAY:3}

    _[n]um:X[2-9]1XXX XXX  => num:${SAY:0:3}, digits/million1, num:${SAY:3}
    _[n]um:X[2-9]1XXXXXXf  => num:${SAY:0:3}, digits/million1, num:${SAY:3}

    _[n]um:X[2-9][2-4]XXXXXX  => num:${SAY:0:3}, digits/million2, num:${SAY:3}
    _[n]um:X[2-9][2-4]XXXXXXf  => num:${SAY:0:3}, digits/million2, num:${SAY:3}

    _[n]um:X[2-9][5-9]XXXXXX  => num:${SAY:0:3}, digits/million5, num:${SAY:3}
    _[n]um:X[2-9][5-9]XXXXXXf  => num:${SAY:0:3}, digits/million5, num:${SAY:3}

Особенности названия файлов:
1f одна
2f две
thousand1 тысяча
thousand2 тысячи
thousand5 тысяч
million1 миллион
million2 миллиона
million5 миллионов

Использование:
Playback(num:1356|say) - одна тысяча триста пятьдесят шесть
Playback(num:421f|say) - четыреста двадцать одна

_________________
Everything over IP & IP over Everything


Последний раз редактировалось: Braams (Вт Апр 01, 2008 13:49)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Ded
Guru


Зарегистрирован:
10.01.2005
Сообщения: 4428
Откуда: Road Town, Tortola, British Virgin Islands

Статус: Оффлайн 

СообщениеДобавлено: Вт Фев 19, 2008 13:01    Заголовок сообщения:

Цитата:
Playback(num:421f|say) - четыреста двадцать одна

Если 421 копейка - то семантически верно, а если 421 рубль - то не верно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Braams



Зарегистрирован:
03.08.2006
Сообщения: 83

Статус: Оффлайн 

СообщениеДобавлено: Вт Фев 19, 2008 13:06    Заголовок сообщения:

в первую очередь для копеек женский род и делал
_________________
Everything over IP & IP over Everything
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Ded
Guru


Зарегистрирован:
10.01.2005
Сообщения: 4428
Откуда: Road Town, Tortola, British Virgin Islands

Статус: Оффлайн 

СообщениеДобавлено: Вт Фев 19, 2008 13:17    Заголовок сообщения:

Лутше для тысяч, чо мелочица? Четыреста двадцать одна тысяча.... Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Braams



Зарегистрирован:
03.08.2006
Сообщения: 83

Статус: Оффлайн 

СообщениеДобавлено: Вт Фев 19, 2008 13:19    Заголовок сообщения:

ну и для корректного произношения тысяч тоже Smile
_________________
Everything over IP & IP over Everything
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
anest
Модератор


Зарегистрирован:
28.11.2004
Сообщения: 5636

Статус: Оффлайн 

СообщениеДобавлено: Вт Фев 19, 2008 17:23    Заголовок сообщения:

зачет! Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mike_A



Зарегистрирован:
08.03.2008
Сообщения: 3
Откуда: Россия, Рязань

Статус: Оффлайн 

СообщениеДобавлено: Сб Мар 08, 2008 22:22    Заголовок сообщения: say.conf [RU]

Народ, вот мой вариант, говорит и мегабайты, и градусы и копейки ...
Ни как не победил минус и дробные числа - ну чтоб зарядить ему currency:-12,34, а оно само и минус и рубли и копейки сказало - надо патчи писать, тока там всё доходит до главного анализа всего dial-плана - а вот это что-то не хочеться поганить

Код:
exten => s,n,GotoIf($[${Downloaded} > 1024]?MByte)
exten => s,n,Playback(kilobyte:${Downloaded},say)
exten => s,n,Goto(s,next)
exten => s,n(MByte),GotoIf($[$[${Downloaded}/1024] > 1024]?GByte)
exten => s,n,Playback(megabyte:$[ROUND(${Downloaded}/1024})],say)
exten => s,n,Goto(s,next)
exten => s,n(GByte),Playback(gigabyte:$[ROUND(${Downloaded}/(1024*1024))],say)
exten => s,n(next),...


говорилка времени тут пока не сделана
хотелось бы это всё доделать и внести в транк, но времени как всегда не хватает


Последний раз редактировалось: Mike_A (Вс Мар 09, 2008 19:49)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Список форумов Asterisk Forum -> Asterisk IP PBX На страницу 1, 2, 3  След. Ответить на тему
Страница 1 из 3

Добавить в Избранное

 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
You cannot attach files in this forum
You cannot download files in this forum