포터블기기 강좌


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

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

번호 제목 작성자 작성일 조회
201 중국 저가 AP 7세대의 운명과 8세대의 향방 [7] 星夜舞人 12.10 2130
200 중국에서 구입한 갤럭시S6 갤럭시노트5 같은폰은 폰카의 셔트음이 무음으로 되나요, [9] 그린 11.25 2328
199 다이어트 방법 공유? [8] Freedom^^ 09.16 3144
198 DIY 철상자를 책 테이블로 [6] file 파리 07.16 3220
197 Palm Desktop to Google [6] dow 10.08 3221
196 때늦은 팜 강좌 - 꼭꼭 숨어라 시리즈 강좌 3. 개인 데이터베이스 백업 [4] file 피델리티 03.10 3311
195 WebOS 기기에 대한 질문글입니다. (고수님들 꾸벅~) [3] 패드패드패드 03.19 3317
194 iBooks 의 화끈한 샘플 양 [9] file 파리 06.24 3320
193 위룰 하고 싶은데, 미국계정으로 앱스토어 접속해야하나요? [2] 바보남자 07.02 3327
192 [PalmPilot] Palm OS 2.0에서 HappyDays 사용하기 [1] 유태신 03.29 3332
191 휴대기기 이북리더 활용 [6] 마루 05.24 3345
190 미친척하고 비영리 Kickstarter 프로젝트 진행하기 (1편) 星夜舞人 12.28 3351
189 PD10 시스템 업그레이드 방법 [1] file 하늘마루 08.01 3359
188 EKEN M001 안드로이드 타블렛 FAQs [7] 성야무인 06.20 3368
187 노키아 N5800 하드리셋 방법 [3] 준용군 07.12 3374
186 SKT 미라지 세팅방법 [2] Freedom^^ 02.13 3375
185 WM폰에서 페이스북 사용하는 3가지 방법 (동영상 첨부) [1] 거스파이 03.18 3380
184 때늦은 팜 강좌 - 꼭꼭 숨어라 시리즈 강좌 1. 핫싱크 데이터 전송 피하기 [5] file 피델리티 03.10 3395
183 한성탭 (U9gt2)에서 내장 주소록 사용하기. [3] file Eric 03.19 3401
182 윈모바일 기기 속도향상방법(PDA 포함)-아시는 분도 많을듯 합니다~ [4] 아브라함 09.03 3403

오늘:
712
어제:
840
전체:
15,186,327