say.conf [RU]

Основной форум.
Для опытных

Модераторы: Admins, Модераторы

Аватара пользователя
IgorG
Модератор
Сообщения: 1054
Зарегистрирован: 21 ноя 2005, 05:59
Откуда: Россия, Омск
Контактная информация:

Сообщение IgorG » 09 мар 2008, 03:41

Очень хорошая идея... Сам двигался в этом направлении, посмотрю в чём проблема с минусами и дробными числами.
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru

Braams
Сообщения: 83
Зарегистрирован: 03 авг 2006, 13:07

Произношение рублей и копеек

Сообщение Braams » 01 апр 2008, 08:46

Произношение сумм

Код: Выделить всё

_rub&#58;. => num&#58;$&#123;SAY&#125;, rub$&#123;IF&#40;$&#91;$&#91;$&#91;$&#123;SAY&#125;%10&#93;=1&#93; & $&#91;$&#91;$&#123;SAY&#125;%100&#93;!=11&#93;&#93;?1&#58;$&#123;IF&#40;$&#91;$&#91;$&#91;$&#91;$&#123;SAY&#125;%10&#93;>=2&#93; & $&#91;$&#91;$&#123;SAY&#125;%10&#93;<=4&#93;&#93; & $&#91;$&#91;$&#91;$&#123;SAY&#125;%100&#93;<10&#93; | $&#91;$&#91;$&#123;SAY&#125;%100&#93;>=20&#93;&#93;&#93;?2&#58;5&#41;&#125;&#41;&#125;

_kop&#58;. => num&#58;$&#123;SAY&#125;f, kop$&#123;IF&#40;$&#91;$&#91;$&#91;$&#123;SAY&#125;%10&#93;=1&#93; & $&#91;$&#91;$&#123;SAY&#125;%100&#93;!=11&#93;&#93;?1&#58;$&#123;IF&#40;$&#91;$&#91;$&#91;$&#91;$&#123;SAY&#125;%10&#93;>=2&#93; & $&#91;$&#91;$&#123;SAY&#125;%10&#93;<=4&#93;&#93; & $&#91;$&#91;$&#91;$&#123;SAY&#125;%100&#93;<10&#93; | $&#91;$&#91;$&#123;SAY&#125;%100&#93;>=20&#93;&#93;&#93;?2&#58;5&#41;&#125;&#41;&#125;
Особенности названия файлов:
rub1 рубль
rub2 рубля
rub5 рублей

kop1 копейка
kop2 копейки
kop5 копеек

Использование:
Playback(rub:21|say) - двадцать один рубль
Playback(kop:21|say) - двадцать одна копейка

Использованные материалы:
http://translate.sourceforge.net/wiki/l ... ralforms#r
Everything over IP & IP over Everything

dr010
Сообщения: 14
Зарегистрирован: 10 июл 2008, 10:25

Сообщение dr010 » 25 сен 2008, 13:43

Я еще вот так добавил:

Код: Выделить всё

    _chas&#58;0                     => num&#58;$&#123;SAY&#125;, digits/hours
    _chas&#58;1                     => digits/$&#123;SAY&#125;, digits/one-hours
    _chas&#58;&#91;2-4&#93;                 => num&#58;$&#123;SAY&#125;, digits/houra
    _chas&#58;&#91;5-9&#93;                 => num&#58;$&#123;SAY&#125;, digits/hours
    _chas&#58;0X                    => chas&#58;$&#123;SAY&#58;1&#125;
    _chas&#58;1X                    => num&#58;$&#123;SAY&#125;, digits/hours
    _chas&#58;20                    => num&#58;$&#123;SAY&#125;, digits/hours
    _chas&#58;2&#91;1-4&#93;                => num&#58;$&#123;SAY&#58;0&#58;1&#125;0, chas&#58;$&#123;SAY&#58;1&#125;

    _mi&#91;n&#93;uta&#58;0                 => num&#58;$&#123;SAY&#125;, digits/minuts
    _mi&#91;n&#93;uta&#58;1                 => digits/odna, digits/minuta
    _mi&#91;n&#93;uta&#58;2                 => digits/dve, digits/minuty
    _mi&#91;n&#93;uta&#58;&#91;3-4&#93;             => num&#58;$&#123;SAY&#125;, digits/minuty
    _mi&#91;n&#93;uta&#58;&#91;5-9&#93;             => num&#58;$&#123;SAY&#125;, digits/minuts
    _mi&#91;n&#93;uta&#58;0X                => minuta&#58;$&#123;SAY&#58;1&#125;
    _mi&#91;n&#93;uta&#58;1X                => num&#58;$&#123;SAY&#125;, digits/minuts
    _mi&#91;n&#93;uta&#58;&#91;2-5&#93;0            => num&#58;$&#123;SAY&#125;, digits/minuts
    _mi&#91;n&#93;uta&#58;&#91;2-5&#93;&#91;1-9&#93;        => num&#58;$&#123;SAY&#58;0&#58;1&#125;0, minuta&#58;$&#123;SAY&#58;1&#125;

    _seku&#91;n&#93;da&#58;0                => num&#58;$&#123;SAY&#125;, digits/seconds
    _seku&#91;n&#93;da&#58;1                => digits/odna, digits/one-seconds
    _seku&#91;n&#93;da&#58;2                => digits/dve, digits/secondsy
    _seku&#91;n&#93;da&#58;&#91;3-4&#93;            => num&#58;$&#123;SAY&#125;, digits/secondsy
    _seku&#91;n&#93;da&#58;&#91;5-9&#93;            => num&#58;$&#123;SAY&#125;, digits/seconds
    _seku&#91;n&#93;da&#58;0X               => sekunda&#58;$&#123;SAY&#58;1&#125;
    _seku&#91;n&#93;da&#58;1X               => num&#58;$&#123;SAY&#125;, digits/seconds
    _seku&#91;n&#93;da&#58;&#91;2-5&#93;0           => num&#58;$&#123;SAY&#125;, digits/seconds
    _seku&#91;n&#93;da&#58;&#91;2-5&#93;&#91;1-9&#93;       => num&#58;$&#123;SAY&#58;0&#58;1&#125;0, sekunda&#58;$&#123;SAY&#58;1&#125;
 

И, соответственно, здесь:

Код: Выделить всё

    _date&#58;&#91;hH&#93;&#58;. => chas&#58;$&#123;SAY&#58;8&#58;2&#125;              ; hour
    _date&#58;&#91;M&#93;&#58;.  => minuta&#58;$&#123;SAY&#58;10&#58;2&#125;             ; minute
    _date&#58;&#91;S&#93;&#58;.  => sekunda&#58;$&#123;SAY&#58;13&#58;2&#125;             ; seconds

    _datetime&#58;&#58;. => date&#58;AdBY HMS&#58;$&#123;SAY&#125;
Теперь время по-человечески говорит.

furbub
Сообщения: 7
Зарегистрирован: 25 ноя 2008, 13:32

Сообщение furbub » 25 ноя 2008, 14:07

народ! помогите, пожалуйста, ни как не могу разобраться:
с самого начала после установки астериск правильно произносит руские числа, от меня требовалось только добавить соответсвующие звуки, но я ни как не могу найти, где он берет русскую конфигурацию, даже после того как я переименовал say.conf и перезапустил астериск, он все равно все произносит правильно.. :shock:
Может быть я что то не учел, подскажите, если знаете в чем может быть дело.

P.s. у меня установлен asterisk-1.4.21.2_4 и asterisk-addons-1.4.6_2

Аватара пользователя
IgorG
Модератор
Сообщения: 1054
Зарегистрирован: 21 ноя 2005, 05:59
Откуда: Россия, Омск
Контактная информация:

Сообщение IgorG » 25 ноя 2008, 17:58

Очевидно он берёт её в say.c :twisted:
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru

furbub
Сообщения: 7
Зарегистрирован: 25 ноя 2008, 13:32

Сообщение furbub » 25 ноя 2008, 19:51

а где он находиться, не скажешь? найти его поиском не получается..

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

Сообщение Ded » 25 ноя 2008, 20:02

Да ну?
find / -name say.c
:twisted:

furbub
Сообщения: 7
Зарегистрирован: 25 ноя 2008, 13:32

Сообщение furbub » 26 ноя 2008, 08:26

к сожалению и так не находит

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

Сообщение Ded » 26 ноя 2008, 08:31

- Ну тогда вам к доктору надо!
- А вы кто?
- А мы маляры, мы здесь красим.

furbub
Сообщения: 7
Зарегистрирован: 25 ноя 2008, 13:32

Сообщение furbub » 26 ноя 2008, 08:46

скажите где say.c лежит по умолчанию? может в freebsd это say.h?

Аватара пользователя
IgorG
Модератор
Сообщения: 1054
Зарегистрирован: 21 ноя 2005, 05:59
Откуда: Россия, Омск
Контактная информация:

Сообщение IgorG » 26 ноя 2008, 15:10

say.c это часть исходных кодов астериска, он компилируется внутрь комманды asterisk. Если астериск поставлен не из исходных текстов, то скорее всего нет такого файла.
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru

furbub
Сообщения: 7
Зарегистрирован: 25 ноя 2008, 13:32

Сообщение furbub » 27 ноя 2008, 07:42

спасибо за разъясненние ;)

ignik
Сообщения: 1
Зарегистрирован: 26 янв 2009, 01:14

Re: say.conf [RU]

Сообщение ignik » 26 янв 2009, 01:38

anest писал(а):Ктонить поделится сабжем?
Дарю (perl, utf8): http://voip.spb.edu/say.txt

beba
Сообщения: 232
Зарегистрирован: 29 июл 2006, 11:58
Откуда: Беларусь

Сообщение beba » 26 янв 2009, 10:12

спасибо

bigvc
Сообщения: 1
Зарегистрирован: 18 фев 2009, 13:03

Сообщение bigvc » 18 фев 2009, 13:09

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

С трех значным числом например 380 проговаривает только 80. Что не правильно ?

Alex_asdf
Сообщения: 199
Зарегистрирован: 14 апр 2009, 13:10
Откуда: Ижевск

Сообщение Alex_asdf » 16 июл 2009, 09:02

Использую say.conf от Mike_A

не давно проапдейтил * с 1.4.19 до 1.4.25.1

до этого проговор работал

Код: Выделить всё

exten => s,n,Playback&#40;currency&#58;$&#123;rub&#125;,say&#41;
exten => s,n,Playback&#40;kopeyka&#58;$&#123;kop&#125;,say&#41;
после апдейте какие-то странности.

для проверки сделал

Код: Выделить всё

exten => s,n,Noop&#40;$&#123;CHANNEL&#40;language&#41;&#125;&#41;
exten => s,n,Playback&#40;digits/ru/$&#123;rub&#125;&#41;
exten => s,n,Playback&#40;currency&#58;$&#123;rub&#125;,say&#41;
exten => s,n,Playback&#40;kopeyka&#58;$&#123;kop&#125;,say&#41;
он выдает

Код: Выделить всё

 Executing &#91;s@testt1&#58;6&#93; NoOp&#40;"SIP/33333-b60dd728", "ru"&#41; in new stack
    -- Executing &#91;s@testt1&#58;7&#93; Playback&#40;"SIP/33333-b60dd728", "digits/ru/300"&#41; in new stack
    -- <SIP/33333-b60dd728> Playing 'digits/ru/300' &#40;language 'ru'&#41;
    -- Executing &#91;s@testt1&#58;8&#93; Playback&#40;"SIP/33333-b60dd728", "currency&#58;300|say"&#41; in new stack
&#91;Jul 16 12&#58;56&#58;09&#93; WARNING&#91;20280&#93;&#58; file.c&#58;658 ast_openstream_full&#58; File digits/300 does not exist in any format
&#91;Jul 16 12&#58;56&#58;09&#93; WARNING&#91;20280&#93;&#58; file.c&#58;966 ast_streamfile&#58; Unable to open digits/300 &#40;format 0x2 &#40;gsm&#41;&#41;&#58; No such file or directory
&#91;Jul 16 12&#58;56&#58;09&#93; WARNING&#91;20280&#93;&#58; app_playback.c&#58;135 s_streamwait3&#58; Unable to play message digits/300
&#91;Jul 16 12&#58;56&#58;09&#93; WARNING&#91;20280&#93;&#58; app_playback.c&#58;439 playback_exec&#58; ast_streamfile failed on SIP/33333-b60dd728 for currency&#58;300|say
    -- Executing &#91;s@testt1&#58;9&#93; Playback&#40;"SIP/33333-b60dd728", "kopeyka&#58;50|say"&#41; in new stack
    -- <SIP/33333-b60dd728> Playing 'digits/50' &#40;language 'ru'&#41;
&#91;Jul 16 12&#58;56&#58;10&#93; WARNING&#91;20280&#93;&#58; file.c&#58;658 ast_openstream_full&#58; File digits/kopeek does not exist in any format
&#91;Jul 16 12&#58;56&#58;10&#93; WARNING&#91;20280&#93;&#58; file.c&#58;966 ast_streamfile&#58; Unable to open digits/kopeek &#40;format 0x2 &#40;gsm&#41;&#41;&#58; No such file or directory
&#91;Jul 16 12&#58;56&#58;10&#93; WARNING&#91;20280&#93;&#58; app_playback.c&#58;135 s_streamwait3&#58; Unable to play message digits/kopeek
&#91;Jul 16 12&#58;56&#58;10&#93; WARNING&#91;20280&#93;&#58; app_playback.c&#58;439 playback_exec&#58; ast_streamfile failed on SIP/33333-b60dd728 for kopeyka&#58;50|say
почему-то по английски пытается воспроизвести.

однако, если сунуть файлы не в /digits/ru ,а в /ru/digits , то работает.

это у меня что-то мутное или в 1.4.25.1 структура изменилась ?

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

Сообщение Ded » 16 июл 2009, 09:15

Изменилась.

Аватара пользователя
anest
Модератор
Сообщения: 5700
Зарегистрирован: 28 ноя 2004, 10:04

Сообщение anest » 16 июл 2009, 10:02

наконецто поменяли. имхо так идеологически более правильно.

Аватара пользователя
IgorG
Модератор
Сообщения: 1054
Зарегистрирован: 21 ноя 2005, 05:59
Откуда: Россия, Омск
Контактная информация:

Сообщение IgorG » 17 июл 2009, 11:44

Эмм.. Она вообще давно изменилась, поведение регулируется в asterisk.conf. Просто в этой версии старое поведение опять сломали. Лучше пользоваться новым вариантом расположения файлов всегда.
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru

Аватара пользователя
Cache
Модератор
Сообщения: 688
Зарегистрирован: 12 янв 2007, 11:39
Откуда: Россия. Шатура
Контактная информация:

Сообщение Cache » 17 сен 2009, 11:07

А никто не делал чтоб говорило минус?
нанотехнолигии в области Asterisk

Аватара пользователя
koqep
Сообщения: 221
Зарегистрирован: 26 янв 2010, 09:04
Откуда: Челябинская обл.
Контактная информация:

Сообщение koqep » 01 мар 2010, 14:39

скопировал себе в say.conf
IgorG писал(а):Последний вариант: =)

Код: Выделить всё

&#91;ru-base&#93;&#40;!&#41;
....
    ; enumeration
    _e&#91;n&#93;um&#58;X&#91;mfn&#93; => digits/h-$&#123;SAY&#125;
    _e&#91;n&#93;um&#58;1X&#91;mfn&#93; => digits/h-$&#123;SAY&#125;
    _e&#91;n&#93;um&#58;&#91;2-9&#93;0&#91;mfn&#93; => digits/h-$&#123;SAY&#125;
    _e&#91;n&#93;um&#58;&#91;2-9&#93;&#91;1-9&#93;&#91;mfn&#93; => num&#58;$&#123;SAY&#58;0&#58;1&#125;0, digits/h-$&#123;SAY&#58;1&#125;
    _e&#91;n&#93;um&#58;&#91;1-9&#93;XX&#91;mfn&#93; => num&#58;$&#123;SAY&#58;0&#58;1&#125;, digits/hundred, enum&#58;$&#123;SAY&#58;1&#125;

&#91;ru&#93;&#40;ru-base,digit-base&#41;
....
    _date&#58;&#91;Bb&#93;&#58;. => digits/mon-$&#91;$&#123;SAY&#58;4&#58;2&#125;-1&#93;
    _date&#58;&#91;de&#93;&#58;. => enum&#58;$&#123;SAY&#58;6&#58;2&#125;n            ; day of month

    _datetime&#58;&#58;. => date&#58;kMdBYA&#58;$&#123;SAY&#125;
    _date&#58;&#58;. => date&#58;dBYA&#58;$&#123;SAY&#125;
    _time&#58;&#58;. => date&#58;kM&#58;$&#123;SAY&#125;
но такое ощущение что у меня астериск вообще не читает этот файл :( поменял некоторые строки (например: _datetime::. => date:kMdBYA:${SAY} ) ,я так понял что теперь можно просто писать SayUnixTime() и должно говорится что у казано в _datetime, так? Но это не важно мне не сложно написать SayUnixTime(kMdBYA).

Проблема в другом с этим say.conf астериск говорит что не может найти файл digits/h-1 хотя указано что надо букву "n" подставлять если это день месяца, но почему-то не подставляет :( астер уже перезапускал, прова доступа проверил не помогает :(

С номером месяца тоже самое, следуя этим правилам месяцы считаются с 0 до 11, а у меня 1 - 12, исправил _date:[Bb]:. => digits/mon-${SAY:4:2} результатов недало, так же и продолжает считать их с 0

в чем проблемма подскажите?

Аватара пользователя
koqep
Сообщения: 221
Зарегистрирован: 26 янв 2010, 09:04
Откуда: Челябинская обл.
Контактная информация:

Сообщение koqep » 02 мар 2010, 09:26

Asterisk 1.6.1.12:
если в say.conf в разделе [general] выставить mode=new то после этого в диалплане просто пишем exten => s,1,SayUnixTime() и астер начинает проговаривать те и только те правила которые указанные в say.conf, в частности _datetime - это побороли, этого я и хотел, но он не парсит строку _date:[de]:. => enum:${SAY:6:2}n , т.е. не подставляет букву n и как следствие пишет что файл не найдет


Asterisk 1.4.27.1:
Все наоборот, проделываем тоже самое что и с Asterisk 1.6 - строчки _date:[de]:. => enum:${SAY:6:2}n и им подобные парсятся, а вот exten => s,1,SayUnixTime() проговаривает дефолтную дату и нивкакую не хочет проговаривать то что указано в _datetime

Аватара пользователя
IgorG
Модератор
Сообщения: 1054
Зарегистрирован: 21 ноя 2005, 05:59
Откуда: Россия, Омск
Контактная информация:

Сообщение IgorG » 04 мар 2010, 04:22

В 1.4 режим работы приложений нужно устанавливать из CLI: say mode new (если правильно помню)
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru

Аватара пользователя
koqep
Сообщения: 221
Зарегистрирован: 26 янв 2010, 09:04
Откуда: Челябинская обл.
Контактная информация:

Сообщение koqep » 11 мар 2010, 12:11

почему у меня на работают конструкции

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

почему то пытается проиграть этот файл с таким названием и естественно не находит его

Код: Выделить всё

&#91;2010-03-11 15&#58;41&#58;11&#93; WARNING&#91;21155&#93;&#58; file.c&#58;953 ast_streamfile&#58; Unable to open num&#58;1356|say &#40;format 0x4 &#40;ulaw&#41;&#41;&#58; No such file or directory
&#91;2010-03-11 15&#58;41&#58;11&#93; WARNING&#91;21155&#93;&#58; app_playback.c&#58;448 playback_exec&#58; ast_streamfile failed on SIP/sflphone-sip-0000001f for num&#58;1356|say


Added after 31 minutes:

усе разобрался! У меня версия астера 1.6 поэтому и ни работало, надо писать

Playback(enum:22f,say) - двадцать вторая


подсказал c0rn в jabber конференции asterisk@conference.jabber.ru за это ему спасибо :)

EXA
Сообщения: 487
Зарегистрирован: 24 фев 2008, 17:28

Сообщение EXA » 20 сен 2010, 08:05

Что-то туплю на ровном месте ни чего не получилось, что бы не было лишних грабель скачал с этой ветке say.conf, дал права для астера, но вместо хотя бы чего-нибудь тупо тишина, после say load new, хорошо, что в гугле old нашёл, а то не мог заставить обратно хоть как-то заговорить.
Вот такой астериск Connected to Asterisk 1.4.22-4 RPM by vc-rpms@voipconsulting.nl currently running on trixbox1

Вот так пытаюсь заставить говорить:

Код: Выделить всё

&#91;custom-time-now&#93;
exten => s,1,Set&#40;CHANNEL&#40;language&#41;=ru&#41;
exten => s,n,SayUnixTime&#40;,EST5EDT,kMdBYA&#41;
exten => s,n,Hangup
А в выводе ни чего противоправного:

Код: Выделить всё

 -- Executing &#91;s@custom-time-now&#58;1&#93; Set&#40;"SIP/677575-b7dec978", "CHANNEL&#40;language&#41;=ru"&#41; in new stack
    -- Executing &#91;s@custom-time-now&#58;2&#93; SayUnixTime&#40;"SIP/677575-b7dec978", "|EST5EDT|kMdBYA"&#41; in new stack
    -- Executing &#91;s@custom-time-now&#58;3&#93; Hangup&#40;"SIP/677575-b7dec978", ""&#41; in new stack
  == Spawn extension &#40;custom-time-now, s, 3&#41; exited non-zero on 'SIP/677575-b7dec978'
Поясните плиз, что не так? А то тупо не знаю даже куда смотреть.
Смотрю давным давно у Ded такая же муть была, а ответа что сделали, не написали, а жаль
:)

Added after 8 minutes:

В том say.conf, что я скачал, нет секции [general], нет указания new и прочее..... как оно должно быть, должно быть указано new, просто в ступор вообще вогнало вот это
http://svnview.digium.com/svn/asterisk/ ... hrev=76216

Added after 2 minutes:

Добавил один фиг молчит, что и логично в общем....

Код: Выделить всё

&#91;general&#93;
mode=old  ; method for playing numbers and dates
                ; old - using asterisk core function
                ; new - using this configuration file


Added after 5 minutes:

Чутка прояснилось, астериск из say.conf не смог наверное по шаблону разобрать это
exten => s,n,SayUnixTime(,EST5EDT,kMdBYA) , а это смог
exten => s,n,SayUnixTime()
Вот и хорошо, моно дальше думать =).

Ответить