Skip to content

Ошибки в asterisk EAGI на большом объеме текста #232

Open
@epigraphe

Description

@epigraphe

Доброго дня.

Eagi.py взял Ваш https://github.com/alphacep/vosk-server/blob/master/client-samples/asterisk/eagi.py с небольшими дополнениями в виде расстановки препинаков в субпроцессе и отправке результата в телеграмм.

Все настроил, все работает на маленьких объемах. ("Раз-два-три четыре и тому подобное на несколько строк" работает прекрасно, огромное Вам спасибо за поистине титанический труд)

Для теста попробовал наговорить в астериске большой объем текста

Возможности ИИ потрясают. Но заменит ли он человека? Как мы писали выше, в ближайшие 10-20 лет искусственный интеллект по прогнозам захватит треть профессий.
Многие уже обеспокоены столь стремительным развитием – например, Илон Маск публично заявил об угрозе ИИ и подписал открытое письмо с призывом приостановить как минимум на полгода обучение систем более мощных, чем языковая модель GPT-4 от OpenAI (правда, месяц спустя он зарегистрировал собственную компанию xAI, которая должна стать конкурентом OpenAI).

Сперва пролетает десятка три ошибок:

file.c:1696 waitstream_core: write() failed: Resource temporarily unavailable

Но при этом весь текст распознается нормально:

 /home/ubuntu/eagi.py: Processing chunk
 /home/ubuntu/eagi.py: Result: {'partial': 'возможности и потрясают но заменит ли он человека как мы писали выше ближайшие десять двадцать лет искусственный интеллект по прогнозам захватят пять профессий многие уже беспокойно столь стремительным развитием например и он маг публично заявил об уг▒       > озе и подписал открытое письмо с призывом приостановить как минимум на'}

Если остановится на небольшом объеме - все происходит, как и расчитывалось.

Если продолжать говорить, то возникает ошибка:

 /home/ubuntu/eagi.py: Processing chunk
[2023-07-28 17:21:52] ERROR[3453][C-00000002]: json.c:607 ast_json_vpack: Error building JSON from '{s: i, s: s}': Invalid UTF-8 string.
[2023-07-28 17:21:52] ERROR[3453][C-00000002]:   Got 11 backtrace records
# 0: /usr/sbin/asterisk(ast_json_pack+0x9d) [0x55ada9fb437d]
# 1: /usr/lib/asterisk/modules/res_agi.so(+0xb638) [0x7f7401bb8638]
# 2: /usr/lib/asterisk/modules/res_agi.so(+0xfee0) [0x7f7401bbcee0]
# 3: /usr/lib/asterisk/modules/res_agi.so(+0x11439) [0x7f7401bbe439]
# 4: /usr/sbin/asterisk(pbx_exec+0xd8) [0x55ada9fe2568]
# 5: /usr/sbin/asterisk(+0x117eb8) [0x55ada9fd6eb8]
# 6: /usr/sbin/asterisk(+0x1198f0) [0x55ada9fd88f0]
# 7: /usr/sbin/asterisk(+0x11ade1) [0x55ada9fd9de1]
# 8: /usr/sbin/asterisk(+0x1923f8) [0x55adaa0513f8]
# 9: /lib/x86_64-linux-gnu/libpthread.so.0(+0x8609) [0x7f7413e75609]
#10: /lib/x86_64-linux-gnu/libc.so.6(clone+0x43) [0x7f7413bf7133]

Затем формируется финальный результат, но не формируется 'text'

/home/ubuntu/eagi.py: Result: {'result': [{'conf': 0.775454, 'end': 5.07, 'start': 4.35, 'word': 'возможности'}, {'conf': 1.0, 'end': 5.46, 'start': 5.07, 'word': 'и'}, {'conf': 0.870522, 'end': 6.15, 'start': 5.46, 'word': ' > ▒отрясают'}, {'conf': 1.0, 'end': 6.27, 'start': 6.15, 'word': 'но'}, {'conf': 0.983217, 'end': 6.63, 'start': 6.27, 'word': 'заменит'}, {'conf': 1.0, 'end': 6.72, 'start': 6.63, 'word': 'ли'}, {'conf': 1.0, 'end': 6.87, 'start': 6.72, 'word': 'он'}, {'conf': 1.0, 'end': 7.44, 'start': 6.87, 'word': 'человека'}, {'conf': 1.0, 'end': 7.62, 'start': 7.44, 'word': 'как'}, {'conf': 1.0, 'end': 7.74, 'start': 7.62, 'word': 'мы'}, {'conf': 1.0, 'end': 8.13, 'start': 7.74, 'word': 'писали'}, {'conf': 1.0, 'end': 8.4, 'start': 8.13, 'word': 'выше'}, {'conf': 0.863426, 'end': 8.429729, 'start': 8.4, 'word': 'в'}, {'conf': 1.0, 'end': 8.85, 'start': 8.429729, 'word': 'ближайшие'}, {'conf': 1.0, 'end': 9.15, 'start': 8.85, 'word': 'десять'}, {'conf': 1.0, 'end': 9.51, 'start': 9.15, 'word': 'двадцать'}, {'conf': 0.978394, 'end': 9.69, 'start': 9.51, 'word': 'лет'}, {'conf': 1.0, 'end': 10.14, 'start': 9.69, 'word': 'искусственный'}, {'conf': 1.0, 'end': 10.470732, 'start': 10.14, 'word': 'интеллект'}, {'conf': 0.839462, 'end': 10.53, 'start': 10.470732, 'word': 'по'}, {'conf': 1.0, 'end': 11.01, 'start': 10.53, 'word': 'прогнозам'}, {'conf': 0.938415, 'end': 11.43, 'start': 11.01, 'word': 'захватят'}, {'conf': 0.657692, 'end': 11.64, 'start': 11.43, 'word': 'треть'}, {'conf': 0.667419, 'end': 12.27, 'start': 11.64, 'word': 'профессий'}, {'conf': 1.0, 'end': 12.72, 'start': 12.33, 'word': 'мн▒ > гие'}, {'conf': 1.0, 'end': 12.93, 'start': 12.72, 'word': 'уже'}, {'conf': 0.655107, 'end': 13.439999, 'start': 12.93, 'word': 'беспокойно'}, {'conf': 1.0, 'end': 13.62, 'start': 13.44, 'word': 'столь'}, {'conf': 1.0, 'end': 14.1, 'start': 13.62, 'word': 'стрем▒

Потом опять ошибки json.c:607 ast_json_vpack: Error building JSON from как в примере Выше

Затем идет тонна

[2023-07-28 17:21:52] WARNING[3453][C-00000002]: res_agi.c:3985 parse_args: Too many arguments, truncating
[2023-07-28 17:21:52] WARNING[3453][C-00000002]: res_agi.c:3985 parse_args: Too many arguments, truncating
[2023-07-28 17:21:52] WARNING[3453][C-00000002]: res_agi.c:3985 parse_args: Too many arguments, truncating

И затем вызов завершается

 <SIP/1514-00000001> Playing '/var/lib/asterisk/sounds/ru/custom/beep.slin' (escape_digits=) (sample_offset 0) (language 'ru')
 /home/ubuntu/eagi.py: Traceback (most recent call last):   File /home/ubuntu/eagi.py, line 64, in startAGI     process_chunk(agi, ws, data)   File /home/ubuntu/eagi.py, line 36, in process_chunk     agi.stream_file(/var/lib/asterisk/sounds/ru/custom/beep)   File /usr/local/lib/python3.8/dist-packages/asterisk/agi.py, line 283, in stream_file     response = self.execute(   File /usr/local/lib/python3.8/dist-packages/asterisk/agi.py, line 150, in execute     return self.get_result()   File /usr/local/lib/python3.8/dist-packages/asterisk/agi.py, line 196, in get_result     raise AGIInvalidCommand(response) asterisk.agi.AGIInvalidCommand: Invalid or unknown command
    -- <SIP/1514-00000001>AGI Script /home/ubuntu/eagi.py completed, returning 0
    -- Executing [s@voice-recog:3] Playback("SIP/1514-00000001", "/var/lib/asterisk/sounds/ru/custom/zayavka_ok") in new stack
    -- <SIP/1514-00000001> Playing '/var/lib/asterisk/sounds/ru/custom/zayavka_ok.slin' (language 'ru')
    -- Auto fallthrough, channel 'SIP/1514-00000001' status is 'UNKNOWN'

Подскажите, пожалуйста, с чем это может быть связано?
Спасибо

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions