#!/bin/bash # Образцы звучания робота для владельца: собираются ТОЛЬКО из тех файлов и в том # порядке, который выводит AGI-харнесс (bash ss-dialog.agi с подставленными Setvar). # # Зачем правило: 15.09 образец собрали руками и в первый вариант (сегодняшний день) # подставили «в пятницу» вместо «сегодня» — владелец решил, что робот называет день # недели вместо «сегодня». Робот был прав, ошибочен был образец. # # Порядок фраз берём из вывода прогонов: # python3 /tmp/check_today_wording.py (слово «сегодня» для сегодняшнего дня) # python3 /tmp/agi_harness_dlv.py (сценарии доставки и самовывоза) # там в строках «играет:» перечислены реальные файлы. # # Запуск: bash make-samples.sh → mp3 в /root/robot_samples/ (отправить владельцу в чат). set -euo pipefail W=${W:-/root/ss_wavs} # копии озвучек с АТС (tar с /var/lib/asterisk/sounds/ru) N=${N:-/tmp/dlv_frags} # новые фрагменты доставки OUT=${OUT:-/root/robot_samples} mkdir -p "$OUT" mix () { # $1=имя результата, дальше — список файлов name=$1; shift args=(); for f in "$@"; do args+=(-i "$f"); done filt=""; for i in $(seq 0 $(($# - 1))); do filt="${filt}[$i:a]"; done ffmpeg -v error -y "${args[@]}" -filter_complex "${filt}concat=n=$#:v=0:a=1[out]" \ -map "[out]" -ar 8000 -ac 1 -b:a 64k "$OUT/$name.mp3" printf "%-38s %5s КБ\n" "$name.mp3" "$(( $(stat -c%s "$OUT/$name.mp3") / 1024 ))" } # 1. Самовывоз, звонок в пятницу по готовому заказу: сегодня / понедельник / вторник mix samovyvoz_pyatnica_segodnya \ "$W/ss_pkp_intro.wav" \ "$W/ss_pkp_menu1.wav" "$W/ss_pkp_d_today.wav" \ "$W/ss_pkp_menu2.wav" "$W/ss_pkp_d_1.wav" \ "$W/ss_pkp_menu3.wav" "$W/ss_pkp_d_2.wav" \ "$W/ss_half_pkp.wav" "$W/ss_ok_first.wav" "$W/ss_tail_pkp.wav" # 2. Доставка, заказ готов в пятницу: понедельник и вторник (в день готовности не возим) mix dostavka_pyatnica_pon_vt \ "$N/ss_dlv_intro.wav" \ "$N/ss_dlv_menu1.wav" "$W/ss_pkp_d_1.wav" \ "$N/ss_dlv_menu2.wav" "$W/ss_pkp_d_2.wav" \ "$W/ss_half_dlv.wav" "$W/ss_ok_first.wav" "$W/ss_tail_dlv.wav" # 3. Доставка, заказ готов в четверг, звонок в пятницу: сегодня и понедельник mix dostavka_segodnya_ponedelnik \ "$N/ss_dlv_intro.wav" \ "$N/ss_dlv_menu1.wav" "$W/ss_pkp_d_today.wav" \ "$N/ss_dlv_menu2.wav" "$W/ss_pkp_d_1.wav" \ "$W/ss_half_dlv.wav" "$W/ss_ok_first.wav" "$W/ss_tail_dlv.wav" # 4. Самовывоз, обычный день, окно подряд: сегодня / завтра / послезавтра mix samovyvoz_obychnyy_den \ "$W/ss_pkp_intro.wav" \ "$W/ss_pkp_day3.wav" \ "$W/ss_half_pkp.wav" "$W/ss_ok_first.wav" "$W/ss_tail_pkp.wav"