포터블기기 강좌


다음은 어학공부시 대화를 녹음해놓고 들어볼 때 유용한 유틸입니다.
녹음자체는 여러유틸이 있으니 사용하시고요

(저는 audacity를 이용하네요.)


네이버 매일어학 교재들 보면 아주 짧은 30초도 안되는 대화들로 이루어져 있는데요

이들을 날자순으로 저장해놓고 정해진 기간이상을 충분히 복습하는 것이 무엇보다 중요할겁니다.

특히 중국어같이 발음이 어려운 경우는 느리게 들어보는 것이 유용할텐데요-사실 중국어 때문에 만든 스크립트입니다.
체계적으로 들어야 하는데 매번 손으로 조절한다든가 그때마다 변하는 플레이리스트를 만드는 것이 번거로와서 복습을 체계적으로 잘 안하게되더군요.


그래서 그런 부분을 긁어주기 위해 만든 스크립트입니다.
이 스크립트의 유용한점은 많은 화일들의 범위를 지정할 수도 있고,

각각의 화일을  1.0속도 0.7배속도 1.0속도 등으로 시퀜스를 정해서 들려줄 수 있습니다.


(사실 스크립트는 vlc플레이어의 커맨드모드를 이용합니다. vlc는 어떤 리눅스는 딸려오기도 하고 어떤 리눅스는 깔아야할거에요.)
mp3말고 vlc에서 지원되는 화일은 모두 되고요.

어쩌면 자동으로 플레이되어야하는 데모나 프레젠테이션용도로 유용할수 있습니다.

아무튼 동영상이든 음악이든 플레이리스트를 만들기 번잡한 경우 유용합니다.



쓰임은,
 
sqplay * -r -l  : 모두 섞어서 반복하여 들려줌
sqplay * 5   : 5번째 화일만 들려줌
sqplay * 5-10 : 5번째에서 10번째 화일까지 차례로 들려줌

5번째부터 10번째까지의 파일을 다른속도로 1.0 (제속도) 0.8 (80%속도) 1.0 (다시 제속도)로 3번을 들려주려면
다음처럼 사용합니다.
 
sqplay * 5-10 -s1.0-0.8-1.0

* 대신에 find나 ls의 리눅스 명령의 결과를 넣을 수도 있습니다. 예를 들어
$(ls * -t)  로 시간순으로 정렬결과를 넣을수도 있습니다.


조금 실제적인 예로,
최신으로 녹음된 5화일만 순서를 섞어서 1.0-0.8-1.0속도로 3번씩 반복하여 복습하고자 한다면,

sqplay $(ls * -t | tail -5) s1.0-0.8-1.0 -r

학습계획을 세워서 명령어를 저장해 놓으면 좋겠죠.

예를 들어 저는 20190111.mp3 같은 식으로 날자별로 화일을 저장하고 .bashrc에 다음과 같은 앨리어스를 사용해서 만들어놓습니다.


alias review10='cd ~/Documents/chinese && sqplay $(date --date="10 days ago" --rfc-3339=date | tr -d -).mp3 -s1.0-0.7-0.8-1.0'


이런식으로 항상 현재보다 10일 전의 것을 복습할 수 있어서 체계적 학습에 좋습니다.

저는 매우 만족스럽게 사용하는 스크립트네요.

유용히 사용하시길 바랍니다~




------------다음을 sqplay 로 저장하고  chmod +x sqplay 로 실행권한 줘서 사용--------------------------



#!/bin/bash
# Sequence player script using cvlc player
# Usage:
#       sqplay $(ls * | tail -3)             // play last 3 files
#       sqplay $(ls * -t) 5-10               // sort by time then play from 5th to 10th
#       sqplay * 5 -l                        // play 5th file repeatedly.
#       sqplay *.mp3 12-20 -r -l             // play all mp3 files from 12th to 20 with random order repeatedly.
#       sqplay *.mp3 12-20 -s1.0-0.5-0.7     // play all mp3 files from 12th to 20 with speed of 1.0, 0.5, 0.7 (3times per file)
#       sqplay * -l                          // play everything endlessly
#
#       Limitation : space in file is not allowed.

range_ptrn="^[0-9]+\-[0-9]+$"
number_ptrn="^[0-9]+$"

# default range (all)
range_arr[0]=1
range_arr[1]=100000

# default play sequence
# you can give option with format i.e. ( -s1.0-0.5-0.8 )
seq_arr=( 1.0 )

# handle options
for arg in $@; do
    if [[ $arg == -* ]]
    then
        if [[ $arg == "-l" ]]; then
            loop=1
        elif [[ $arg == "-r" ]]; then
            shuffle=1
        elif [[ $arg == "-v" ]]; then
            verbose=1
        elif [[ $arg == \-s* ]]; then
            seq=$(echo $arg | cut -c 3-)
            readarray -t seq_arr <<< $(echo $seq | tr "-" "\n")
        fi
    elif [[ $arg =~ $range_ptrn ]]; then
        readarray -t range_arr <<< $(echo $arg | tr "-" "\n")
    elif [[ $arg =~ $number_ptrn ]]; then
        range_arr[0]=$arg
        range_arr[1]=$arg
    else
        if [ -z ${l+x} ]; then
            l="$arg"
        else
            l+=$'\n'
            l+="$arg"
        fi
    fi
done

# make play list from given range
i=1
for fn in $l; do
    if [[ $i -ge ${range_arr[0]} ]] && [[ $i -le ${range_arr[1]} ]]
    then
        if [ -z ${lst+x} ]; then
            lst=$fn
        else
            lst+=$'\n'
            lst+=$fn
        fi
    fi
    (( i+=1 ))
done

# shuffle
if [[ $shuffle -eq 1 ]]; then
        if [[ $verbose -eq 1 ]]; then
            printf "shuffling...\n"
        fi
    lst=$(printf "$lst" | sort -R)
fi

for (( ; ; ))
do
    for fn in $lst
    do
        n=1
        for seq in "${seq_arr[@]}"; do
            printf "playing $fn #$n at speed $seq\n"
            cvlc -I ncurses $fn --rate="$seq" --play-and-exit
            sleep 1
            (( n+=1 ))
        done
    done
    if [[ $loop -ne 1 ]]
    then
        break
    fi
done

번호 제목 작성자 작성일 조회
121 옵큐에 버금가는 마하사전 [11] 프리페 11.19 6559
120 Yuandao N50GT루팅 방법입니다. Yuandao Rockchip 타 기종도 루팅이 될 듯 합니다. [7] file Kreator76 12.17 4291
119 N50 배터리 아이콘 변경 file Kreator76 12.20 4151
118 CDMA2000 안드로이드 스마트폰 화웨이 C8650 [4] file yohan666 01.05 3945
117 PS VITA의 리커버리모드 진입 방법 [6] yohan666 01.08 6234
116 Teclast P73 ICS 펌웨어로 업그레이드 하기 [7] file powermax 02.19 3753
115 RK2918 탑재 기기에서 재생 안 되는 영상을 인코딩 할 때 작은 Tip [7] 낙랑이 02.24 4193
114 이런걸 누가 볼까 싶은 LCD 제조 공정에 대한 설명 에니메이션 [11] yohan666 03.19 4769
113 한성탭 (U9gt2)에서 내장 주소록 사용하기. [3] file Eric 03.19 3401
112 novo7 tool을 이용해 clockworkmod설치하기(novo7시리즈만 적용) [5] 나비의겨울 03.23 4107
111 A10 ICS 루팅하기[JB루팅파일 추가] [7] file Lock3rz 03.24 14924
110 N12오리지날 ICS 루팅하기 [9] 이스크라 03.24 4315
109 비스킷 3G 모듈 제거하기 [9] Visual 03.30 4390
108 [팁] AA10 태블릿 ICS 버전에서 중국자막 없애기(MX 플레이어 기준) [10] file 에잇 04.03 9051
107 mx 플레이어에서 한글자막 쉽게 보기 [6] 푸른산 04.05 20913
106 Teclast P85 케이스를 기기와 타이트하게 고정하기 [15] file yohan666 04.21 3652
105 gps가 없는 패드에서 gps사용하기 [13] file 꾸기 04.26 11965
104 휴대폰 내장GPS이용 네비게이션 사용하기 2번째 방법 [1] 이스크라 04.26 14247
103 P85 블루투스를 이용한 GPS이용기 [11] file 코코아빠 04.29 5557
102 PD10 OTA버전 펌업 과정 [13] file 코코아빠 05.04 5415

오늘:
591
어제:
768
전체:
15,201,635