docs(ats): образцы звучания собираются из списка файлов AGI-харнесса + скрипт сборки (в ручном образце «в пятницу» вместо «сегодня»)

This commit is contained in:
Hermes 2026-09-15 09:56:37 +02:00
parent 47b3ccf28f
commit 5a71fbceba
1 changed files with 57 additions and 0 deletions

57
docs/ats/make-samples.sh Normal file
View File

@ -0,0 +1,57 @@
#!/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"