,speech_ru.sh 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. #!/bin/bash
  2. # Coding: utf-8
  3. # Editor: www.geany.org
  4. # Created 2017-05-30
  5. #_sudo_apt_install_
  6. #_sudo_dpkg_i_ scons
  7. export XDG_RUNTIME_DIR=/run/user/$(id -u)
  8. source $HOME/.SCR/lib.sh
  9. fun_log_dir_create $0 7 1
  10. fun_speech_time () # напечатать время с разделением на часы, минуты
  11. {
  12. fun_slova ()
  13. {
  14. case "$1" in
  15. "0" ) ar_num=(ноль ноль часов минут) ;;
  16. "1" ) ar_num=(один одна час минута) ;;
  17. "2" ) ar_num=(два две часа минуты) ;;
  18. "3" ) ar_num=(три три часа минуты) ;;
  19. "4" ) ar_num=(четыре четыре часа минуты) ;;
  20. "5" ) ar_num=(пять пять часов минут) ;;
  21. "6" ) ar_num=(шесть шесть часов минут) ;;
  22. "7" ) ar_num=(семь семь часов минут) ;;
  23. "8" ) ar_num=(восемь восемь часов минут) ;;
  24. "9" ) ar_num=(девять девять часов минут) ;;
  25. "10" ) ar_num=(десять) ;;
  26. "11" ) ar_num=(одинадцать) ;;
  27. "12" ) ar_num=(двенадцать) ;;
  28. "13" ) ar_num=(тринадцать) ;;
  29. "14" ) ar_num=(четырнадцать) ;;
  30. "15" ) ar_num=(пятнадцать) ;;
  31. "16" ) ar_num=(шестнадцать) ;;
  32. "17" ) ar_num=(семнадцать) ;;
  33. "18" ) ar_num=(восемнадцать) ;;
  34. "19" ) ar_num=(девятнадцать) ;;
  35. "20" ) ar_num=(двадцать) ;;
  36. "30" ) ar_num=(тридцать) ;;
  37. "40" ) ar_num=(сорок) ;;
  38. "50" ) ar_num=(пятьдесят) ;;
  39. esac
  40. var=$(($2-1)) # -1 потому что индекс начинается с 0
  41. echo "${ar_num[$var]}"
  42. }
  43. fun_print_XX ()
  44. {
  45. if [ $1 -lt 6 ] # меньше 6
  46. then
  47. min=$(fun_slova $1 $3)
  48. end_min=$(fun_slova $1 $2)
  49. else
  50. if [ $1 -gt 19 ] # больше 19
  51. then
  52. n1=${1:0:1} # выделяем первое число
  53. n2=${1:1:2} # выделяем второе число
  54. n1=$(($n1 * 10))
  55. if [ $n2 -eq 0 ] # равно 0
  56. then
  57. min=$(fun_slova $n1 1)
  58. end_min=$(fun_slova 5 $2)
  59. else
  60. min="$(fun_slova $n1 1) $(fun_slova $n2 $3)"
  61. end_min=$(fun_slova $n2 $2)
  62. fi
  63. else
  64. min=$(fun_slova $1 1)
  65. end_min=$(fun_slova 5 $2)
  66. fi
  67. fi
  68. echo "$min $end_min"
  69. }
  70. if [ $# == "1" ] # если агрумент один
  71. then
  72. f_hour=$(($1 / 60)) # полных часов
  73. f_min=$(($1 % 60)) # остаток минут
  74. else
  75. f_hour=$1
  76. f_min=$2
  77. fi
  78. if [ $f_hour -ne 0 ] # не равно 0
  79. then
  80. if [ $f_min -ne 0 ] # не равно 0
  81. then
  82. echo `fun_print_XX $f_hour 3 1` `fun_print_XX $f_min 4 2`
  83. else
  84. echo "`fun_print_XX $f_hour 3 1` ровно"
  85. fi
  86. else
  87. echo `fun_print_XX $f_min 4 2`
  88. fi
  89. }
  90. fun_voice ()
  91. {
  92. fun_echo_stadia 11 0 ",speech_ru.sh $@"
  93. echo "$(date +%y-%m-%d_%H-%M-%S_%6N) start $@" >> "${tmp1}/${date}"
  94. play ~/.RES/sounds/Sound_20761.ogg # sound after speech
  95. echo "$@" | RHVoice-test -p anna
  96. # see more profiles ls /usr/local/share/RHVoice/voices/
  97. echo "$(date +%y-%m-%d_%H-%M-%S_%6N) finish $@" >> "${tmp1}/${date}"
  98. notify-send -t 10000 -i ~/.RES/icons/vcs-normal.svg "Сегодня $(cat ~/LOG/uptime_counter.sh/time_for_conky)" "$@"
  99. }
  100. if [ -n "$1" ]; # lenth of string not null
  101. then
  102. case "$1" in
  103. "ok" ) fun_voice "Операция выполнена" ;;
  104. "msg001" ) fun_voice "Время $(fun_speech_time $hour_I $mins)" ;;
  105. "msg002" ) fun_voice "Время работы сегодня $(fun_speech_time $uptime_in_day)" ;;
  106. "msg003" ) fun_voice "Время работы $(fun_speech_time $uptime)" ;;
  107. "msg004" ) fun_voice "Время $(fun_speech_time $hour $mins)" ;;
  108. * ) fun_voice "$@" ;; # default speech
  109. esac
  110. fi