supersam/docs/ats/make-samples.sh

58 lines
3.3 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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"