キクタン例文音声からpause付き音声を作成

20140827 ほぼ手間をかけずに変換できるようになった

  • キクタン例文音声から日本語訳の音声を削除し、リピートできるように無音の時間を追加する
  • soxのインストールが必要
  • audacityでanalys -> export multiで出力
  • 変換したらffmpegでmp3に変換する
for f in *.wav; {ffmpeg -i $f ${f%.wav}.mp3;}
  • [todo]現状だと1dayごとに別々のフォルダに保存する必要、今後改善したい
  • [todo]mp3変換も自動でやってほしいね
#!/usr/bin/env python
# -*- coding: utf-8 -*-

SILENT = '.silent.wav'

import os
from subprocess import check_call


# day XX音声の削除
wav_files =  filter(lambda f: f.endswith('wav'), os.listdir('./'))
print "delete number call: " + wav_files[0]
print "---------------------------------"
check_call(['rm', wav_files[0]])

wav_files =  filter(lambda f: f.endswith('wav'), os.listdir('./'))
del_files = [i[1] for i in list(enumerate(wav_files)) if i[0] % 3 == 2]
print "delete japanese wavs: "
print del_files
print "---------------------------------"
# 日本語音声の削除
map(lambda f: check_call(['rm', f]), del_files)


import time
time.sleep(3)

silent_files = filter(lambda f: f.endswith('wav'), os.listdir('./'))
# 無音の音声を作成
map(lambda f: check_call(['sox', '-v', '0', f, f+SILENT]), silent_files)

import time
time.sleep(3)
#------------------------------------------------------------------

all_files = filter(lambda f: f.endswith('wav'), os.listdir('./'))

day_num = all_files[0].split(' ')[0]
print "day num is: " + day_num
print "---------------------------------"


convert_list = [ [all_files[(4*j+i)] for i in range(4)] + \
                 ["day%s-%s.wav" % (day_num, str(j+1).zfill(2) )] \
                 for j in range(len(all_files)/4 ) ]

print convert_list

# 元ファイルと無音ファイルを結合
map(lambda l: check_call(['sox'] + l), convert_list)