포터블기기 강좌


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

(저는 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

번호 제목 작성자 작성일 조회
41 [팁] 구글 주소록 정렬 [2] 맑은하늘 10.14 4576
40 Palm Desktop to Google [6] dow 10.08 3224
39 갤럭시 S 간단 사용기.. (노란 액정, 하얀 액정) [3] 상현아빠 10.03 4206
38 [draft] 팜 to 안드로이드 주소록 옮기기 [7] file 맑은하늘 09.29 5665
37 다이어트 방법 공유? [8] Freedom^^ 09.16 3144
36 [뽐뿌 사이트 / 휴대폰 - 간략 약어 해설] [6] 맑은하늘 09.13 4031
35 [팁] 아이폰과 나이키 플러스 [1] 미케니컬 09.06 3838
34 윈모바일 기기 속도향상방법(PDA 포함)-아시는 분도 많을듯 합니다~ [4] 아브라함 09.03 3403
33 DIY 철상자를 책 테이블로 [6] file 파리 07.16 3220
32 노키아 N5800 하드리셋 방법 [3] 준용군 07.12 3374
31 위룰 하고 싶은데, 미국계정으로 앱스토어 접속해야하나요? [2] 바보남자 07.02 3327
30 iBooks 의 화끈한 샘플 양 [9] file 파리 06.24 3320
29 EKEN M001 안드로이드 타블렛 FAQs [7] 성야무인 06.20 3368
28 EKEN M001 안드로이드 타블렛 플리뷰~~~ [17] file 성야무인 06.03 3737
27 휴대기기 이북리더 활용 [6] 마루 05.24 3345
26 VIA ARM 기반의 중국산 넷북 그리고 그 다양한 OS~~ [11] file 星夜舞人 04.26 4253
25 아이팟터치 사용자들을 위한 오페라 앱의 오프라인 저장 기능 [1] file minki 04.26 3541
24 아이폰 동기화 팁 (재생횟수, 별점 유지하기) 불량토끼 04.16 5773
23 노트북의 트랙패드나 마우스로 팜 그래피티 입력 하기. [2] file 거스파이 04.10 3804
22 VIA ARM 기반의 중국산 넷북과 그 기기를 최적화 시키는 방법... [15] file 성야무인 04.04 3743

오늘:
757
어제:
796
전체:
15,193,775