[Linux] 脚本录音(内录+外录)

[Linux] 录音脚本(内录+外录)

把脚本添加到系统快捷键, 第一次调用录音, 再次调用结束录音

#!/usr/bin/env bash
# 录音, 再次调用结束录音并转写

parent_path="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"

PID_FILE=/tmp/_my_sound_recording.pid

if [ -f "$PID_FILE" ]; then
  source "$PID_FILE"
  kill 15 "$pid" &
  kill 15 "$sys_pid"
  rm -f "$PID_FILE"
  sleep 1
  
  file_dir="$(dirname $file)"
  mix_file_name="$datetime"
  mix_file="${file_dir}/${mix_file_name}.wav"

  start=$(date +%s)
  notify-send -e -a "$0" "提示" "开始转写"

  # 混音
  ffmpeg -i "$file" -i "$sys_file" -filter_complex "[0:a][1:a]amix=inputs=2:duration=longest[a]" -map "[a]" "$mix_file"
  # 转写
  #"$parent_path"/fun_stt "$mix_file" --out-file="${file_dir}/${mix_file_name}.txt"

  end=$(date +%s)
  runtime=$((end-start))
  notify-send -e -a "$0" "提示" "转写完成, 耗时${runtime}"
else
  today="$(date +"%Y-%m-%d")"
  datetime="$(date +"%Y-%m-%d_%H:%M:%S")"
  record_dir="$HOME/Documents/sound_record/$today"
  record_file="${record_dir}/${datetime}_mic.wav"
  record_sys_file="${record_dir}/${datetime}_sys.wav"

  notify-send -e -a "$0" "提示" "再次按下相同快捷键以结束"
  mkdir -p "$record_dir"
  arecord -f cd "$record_file" &
  record_pid=$!
  ffmpeg -f pulse -i default.monitor "$record_sys_file" &
  record_sys_pid=$!

  cat << EOF > "$PID_FILE"
pid=$record_pid
sys_pid=$record_sys_pid
file="$record_file"
sys_file="$record_sys_file"
datetime="$datetime"
EOF
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值