├── tests ├── __init__.py ├── cmudict_test.py ├── text_test.py └── numbers_test.py ├── datasets ├── __init__.py ├── ljspeech.py ├── blizzard.py ├── kss.py ├── bible.py └── datafeeder.py ├── .gitignore ├── models ├── __init__.py ├── helpers.py ├── rnn_wrappers.py ├── modules.py └── tacotron.py ├── requirements.txt ├── util ├── __init__.py ├── plot.py ├── infolog.py └── audio.py ├── LICENSE ├── hparams.py ├── synthesizer.py ├── eval.py ├── text ├── cmudict.py ├── symbols.py ├── cleaners.py ├── numbers.py ├── __init__.py ├── kor_dic.py └── korean.py ├── preprocess.py ├── TRAINING_DATA.md ├── demo_server.py ├── README.md ├── LJSpeech-1.1 └── README ├── train.py └── bible └── metadata.csv /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /datasets/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.gz 2 | .idea/ 3 | __pycache__/ 4 | .cache/ 5 | *.pyc 6 | .DS_Store 7 | run*.sh 8 | *.wav 9 | *.npy 10 | *.json 11 | .ipynb_checkpoints/ 12 | training/ 13 | logs-*/ 14 | 15 | -------------------------------------------------------------------------------- /models/__init__.py: -------------------------------------------------------------------------------- 1 | from .tacotron import Tacotron 2 | 3 | 4 | def create_model(name, hparams): 5 | if name == 'tacotron': 6 | return Tacotron(hparams) 7 | else: 8 | raise Exception('Unknown model: ' + name) 9 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | # Note: this doesn't include tensorflow or tensorflow-gpu because the package you need to install 2 | # depends on your platform. It is assumed you have already installed tensorflow. 3 | falcon==1.2.0 4 | inflect==0.2.5 5 | librosa==0.5.1 6 | matplotlib==2.0.2 7 | numpy==1.14.3 8 | scipy==0.19.0 9 | tqdm==4.11.2 10 | Unidecode==0.4.20 11 | -------------------------------------------------------------------------------- /util/__init__.py: -------------------------------------------------------------------------------- 1 | class ValueWindow(): 2 | def __init__(self, window_size=100): 3 | self._window_size = window_size 4 | self._values = [] 5 | 6 | def append(self, x): 7 | self._values = self._values[-(self._window_size - 1):] + [x] 8 | 9 | @property 10 | def sum(self): 11 | return sum(self._values) 12 | 13 | @property 14 | def count(self): 15 | return len(self._values) 16 | 17 | @property 18 | def average(self): 19 | return self.sum / max(1, self.count) 20 | 21 | def reset(self): 22 | self._values = [] 23 | -------------------------------------------------------------------------------- /util/plot.py: -------------------------------------------------------------------------------- 1 | import matplotlib 2 | matplotlib.use('Agg') 3 | import matplotlib.pyplot as plt 4 | 5 | 6 | def plot_alignment(alignment, path, info=None): 7 | fig, ax = plt.subplots() 8 | im = ax.imshow( 9 | alignment, 10 | aspect='auto', 11 | origin='lower', 12 | interpolation='none') 13 | fig.colorbar(im, ax=ax) 14 | xlabel = 'Decoder timestep' 15 | if info is not None: 16 | xlabel += '\n\n' + info 17 | plt.xlabel(xlabel) 18 | plt.ylabel('Encoder timestep') 19 | plt.tight_layout() 20 | plt.savefig(path, format='png') 21 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017 Keith Ito 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /tests/cmudict_test.py: -------------------------------------------------------------------------------- 1 | import io 2 | from text import cmudict 3 | 4 | 5 | test_data = ''' 6 | ;;; # CMUdict -- Major Version: 0.07 7 | )PAREN P ER EH N 8 | 'TIS T IH Z 9 | ADVERSE AE0 D V ER1 S 10 | ADVERSE(1) AE1 D V ER2 S 11 | ADVERSE(2) AE2 D V ER1 S 12 | ADVERSELY AE0 D V ER1 S L IY0 13 | ADVERSITY AE0 D V ER1 S IH0 T IY2 14 | BARBERSHOP B AA1 R B ER0 SH AA2 P 15 | YOU'LL Y UW1 L 16 | ''' 17 | 18 | 19 | def test_cmudict(): 20 | c = cmudict.CMUDict(io.StringIO(test_data)) 21 | assert len(c) == 6 22 | assert len(cmudict.valid_symbols) == 84 23 | assert c.lookup('ADVERSITY') == ['AE0 D V ER1 S IH0 T IY2'] 24 | assert c.lookup('BarberShop') == ['B AA1 R B ER0 SH AA2 P'] 25 | assert c.lookup("You'll") == ['Y UW1 L'] 26 | assert c.lookup("'tis") == ['T IH Z'] 27 | assert c.lookup('adverse') == [ 28 | 'AE0 D V ER1 S', 29 | 'AE1 D V ER2 S', 30 | 'AE2 D V ER1 S', 31 | ] 32 | assert c.lookup('') == None 33 | assert c.lookup('foo') == None 34 | assert c.lookup(')paren') == None 35 | 36 | 37 | def test_cmudict_no_keep_ambiguous(): 38 | c = cmudict.CMUDict(io.StringIO(test_data), keep_ambiguous=False) 39 | assert len(c) == 5 40 | assert c.lookup('adversity') == ['AE0 D V ER1 S IH0 T IY2'] 41 | assert c.lookup('adverse') == None 42 | -------------------------------------------------------------------------------- /util/infolog.py: -------------------------------------------------------------------------------- 1 | import atexit 2 | from datetime import datetime 3 | import json 4 | from threading import Thread 5 | from urllib.request import Request, urlopen 6 | 7 | 8 | _format = '%Y-%m-%d %H:%M:%S.%f' 9 | _file = None 10 | _run_name = None 11 | _slack_url = None 12 | 13 | 14 | def init(filename, run_name, slack_url=None): 15 | global _file, _run_name, _slack_url 16 | _close_logfile() 17 | _file = open(filename, 'a', encoding="utf-8") 18 | _file.write('\n-----------------------------------------------------------------\n') 19 | _file.write('Starting new training run\n') 20 | _file.write('-----------------------------------------------------------------\n') 21 | _run_name = run_name 22 | _slack_url = slack_url 23 | 24 | 25 | def log(msg, slack=False): 26 | print(msg) 27 | if _file is not None: 28 | _file.write('[%s] %s\n' % (datetime.now().strftime(_format)[:-3], msg)) 29 | if slack and _slack_url is not None: 30 | Thread(target=_send_slack, args=(msg,)).start() 31 | 32 | 33 | def _close_logfile(): 34 | global _file 35 | if _file is not None: 36 | _file.close() 37 | _file = None 38 | 39 | 40 | def _send_slack(msg): 41 | req = Request(_slack_url) 42 | req.add_header('Content-Type', 'application/json') 43 | urlopen(req, json.dumps({ 44 | 'username': 'tacotron', 45 | 'icon_emoji': ':taco:', 46 | 'text': '*%s*: %s' % (_run_name, msg) 47 | }).encode()) 48 | 49 | 50 | atexit.register(_close_logfile) 51 | -------------------------------------------------------------------------------- /hparams.py: -------------------------------------------------------------------------------- 1 | import tensorflow as tf 2 | 3 | # Default hyperparameters: 4 | hparams = tf.contrib.training.HParams( 5 | # Comma-separated list of cleaners to run on text prior to training and eval. For non-English 6 | # text, you may want to use "basic_cleaners" or "transliteration_cleaners" See TRAINING_DATA.md. 7 | cleaners='korean_cleaners', 8 | # Audio: 9 | num_mels=80, 10 | num_freq=1025, 11 | sample_rate=21000, 12 | frame_length_ms=50, 13 | frame_shift_ms=12.5, 14 | preemphasis=0.97, 15 | min_level_db=-100, 16 | ref_level_db=20, 17 | 18 | # Model: 19 | outputs_per_step=5, 20 | embed_depth=256, 21 | prenet_depths=[256, 128], 22 | encoder_depth=256, 23 | postnet_depth=256, 24 | attention_depth=256, 25 | decoder_depth=256, 26 | tacotron_zoneout_rate=0.1, 27 | RNN_type='LSTM', 28 | 29 | # Training: 30 | batch_size=32, 31 | adam_beta1=0.9, 32 | adam_beta2=0.999, 33 | initial_learning_rate=0.002, 34 | decay_learning_rate=True, 35 | use_cmudict=False, # Use CMUDict during training to learn pronunciation of ARPAbet phonemes 36 | 37 | # Eval: 38 | max_iters=300, 39 | griffin_lim_iters=60, 40 | power=1.5, # Power to raise magnitudes to prior to Griffin-Lim 41 | ) 42 | 43 | 44 | def hparams_debug_string(): 45 | values = hparams.values() 46 | hp = [' %s: %s' % (name, values[name]) for name in sorted(values)] 47 | return 'Hyperparameters:\n' + '\n'.join(hp) 48 | -------------------------------------------------------------------------------- /synthesizer.py: -------------------------------------------------------------------------------- 1 | import io 2 | import numpy as np 3 | import tensorflow as tf 4 | from hparams import hparams 5 | from librosa import effects 6 | from models import create_model 7 | from text import text_to_sequence 8 | from util import audio 9 | 10 | 11 | class Synthesizer: 12 | def load(self, checkpoint_path, model_name='tacotron'): 13 | print('Constructing model: %s' % model_name) 14 | inputs = tf.placeholder(tf.int32, [1, None], 'inputs') 15 | input_lengths = tf.placeholder(tf.int32, [1], 'input_lengths') 16 | with tf.variable_scope('model') as scope: 17 | self.model = create_model(model_name, hparams) 18 | self.model.initialize(inputs, input_lengths) 19 | self.wav_output = audio.inv_spectrogram_tensorflow(self.model.linear_outputs[0]) 20 | 21 | print('Loading checkpoint: %s' % checkpoint_path) 22 | self.session = tf.Session() 23 | self.session.run(tf.global_variables_initializer()) 24 | saver = tf.train.Saver() 25 | saver.restore(self.session, checkpoint_path) 26 | 27 | def synthesize(self, text): 28 | cleaner_names = [x.strip() for x in hparams.cleaners.split(',')] 29 | seq = text_to_sequence(text, cleaner_names) 30 | feed_dict = { 31 | self.model.inputs: [np.asarray(seq, dtype=np.int32)], 32 | self.model.input_lengths: np.asarray([len(seq)], dtype=np.int32) 33 | } 34 | wav = self.session.run(self.wav_output, feed_dict=feed_dict) 35 | wav = audio.inv_preemphasis(wav) 36 | wav = wav[:audio.find_endpoint(wav)] 37 | out = io.BytesIO() 38 | audio.save_wav(wav, out) 39 | return out.getvalue() 40 | -------------------------------------------------------------------------------- /eval.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import os 3 | import re 4 | from hparams import hparams, hparams_debug_string 5 | from synthesizer import Synthesizer 6 | 7 | sentences = [ 8 | # 장기하와 얼굴들 ㅋ 가사: 9 | '그가 너를 그의 깃으로 덮으시리니', 10 | '네가 그의 날개 아래에 피하리로다.', 11 | '그의 진실함은 방패와 손 방패가 되시나니', 12 | 13 | # '모든 걸 마무리해버렸어.', 14 | # '나는 큰 결심을 하고서 보낸 문잔데.', 15 | # # 장기하와 얼굴들 새해복 가사: 16 | # '완전히 쾅 닫힌 대화창뿐이네.', 17 | # '새해복 많이 많으세요.', 18 | # '새해 복만으로는 안돼.', 19 | # '너가 잘해야지', 20 | ] 21 | 22 | 23 | def get_output_base_path(checkpoint_path): 24 | base_dir = os.path.dirname(checkpoint_path) 25 | m = re.compile(r'.*?\.ckpt\-([0-9]+)').match(checkpoint_path) 26 | name = 'eval-%d' % int(m.group(1)) if m else 'eval' 27 | return os.path.join(base_dir, name) 28 | 29 | 30 | def run_eval(args): 31 | print(hparams_debug_string()) 32 | synth = Synthesizer() 33 | synth.load(args.checkpoint) 34 | base_path = get_output_base_path(args.checkpoint) 35 | for i, text in enumerate(sentences): 36 | path = '%s-%d.wav' % (base_path, i) 37 | print('Synthesizing: %s' % path) 38 | with open(path, 'wb') as f: 39 | f.write(synth.synthesize(text)) 40 | 41 | 42 | def main(): 43 | parser = argparse.ArgumentParser() 44 | parser.add_argument('--checkpoint', required=True, help='Path to model checkpoint') 45 | parser.add_argument('--hparams', default='', 46 | help='Hyperparameter overrides as a comma-separated list of name=value pairs') 47 | parser.add_argument('--gpu', default='0') 48 | args = parser.parse_args() 49 | os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' 50 | os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" 51 | os.environ["CUDA_VISIBLE_DEVICES"] = args.gpu 52 | hparams.parse(args.hparams) 53 | run_eval(args) 54 | 55 | 56 | if __name__ == '__main__': 57 | main() 58 | -------------------------------------------------------------------------------- /text/cmudict.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | 4 | valid_symbols = [ 5 | 'AA', 'AA0', 'AA1', 'AA2', 'AE', 'AE0', 'AE1', 'AE2', 'AH', 'AH0', 'AH1', 'AH2', 6 | 'AO', 'AO0', 'AO1', 'AO2', 'AW', 'AW0', 'AW1', 'AW2', 'AY', 'AY0', 'AY1', 'AY2', 7 | 'B', 'CH', 'D', 'DH', 'EH', 'EH0', 'EH1', 'EH2', 'ER', 'ER0', 'ER1', 'ER2', 'EY', 8 | 'EY0', 'EY1', 'EY2', 'F', 'G', 'HH', 'IH', 'IH0', 'IH1', 'IH2', 'IY', 'IY0', 'IY1', 9 | 'IY2', 'JH', 'K', 'L', 'M', 'N', 'NG', 'OW', 'OW0', 'OW1', 'OW2', 'OY', 'OY0', 10 | 'OY1', 'OY2', 'P', 'R', 'S', 'SH', 'T', 'TH', 'UH', 'UH0', 'UH1', 'UH2', 'UW', 11 | 'UW0', 'UW1', 'UW2', 'V', 'W', 'Y', 'Z', 'ZH' 12 | ] 13 | 14 | _valid_symbol_set = set(valid_symbols) 15 | 16 | 17 | class CMUDict: 18 | '''Thin wrapper around CMUDict data. http://www.speech.cs.cmu.edu/cgi-bin/cmudict''' 19 | def __init__(self, file_or_path, keep_ambiguous=True): 20 | if isinstance(file_or_path, str): 21 | with open(file_or_path, encoding='latin-1') as f: 22 | entries = _parse_cmudict(f) 23 | else: 24 | entries = _parse_cmudict(file_or_path) 25 | if not keep_ambiguous: 26 | entries = {word: pron for word, pron in entries.items() if len(pron) == 1} 27 | self._entries = entries 28 | 29 | 30 | def __len__(self): 31 | return len(self._entries) 32 | 33 | 34 | def lookup(self, word): 35 | '''Returns list of ARPAbet pronunciations of the given word.''' 36 | return self._entries.get(word.upper()) 37 | 38 | 39 | 40 | _alt_re = re.compile(r'\([0-9]+\)') 41 | 42 | 43 | def _parse_cmudict(file): 44 | cmudict = {} 45 | for line in file: 46 | if len(line) and (line[0] >= 'A' and line[0] <= 'Z' or line[0] == "'"): 47 | parts = line.split(' ') 48 | word = re.sub(_alt_re, '', parts[0]) 49 | pronunciation = _get_pronunciation(parts[1]) 50 | if pronunciation: 51 | if word in cmudict: 52 | cmudict[word].append(pronunciation) 53 | else: 54 | cmudict[word] = [pronunciation] 55 | return cmudict 56 | 57 | 58 | def _get_pronunciation(s): 59 | parts = s.strip().split(' ') 60 | for part in parts: 61 | if part not in _valid_symbol_set: 62 | return None 63 | return ' '.join(parts) 64 | -------------------------------------------------------------------------------- /text/symbols.py: -------------------------------------------------------------------------------- 1 | # ''' 2 | # Defines the set of symbols used in text input to the model. 3 | # 4 | # The default is a set of ASCII characters that works well for English or text that has been run 5 | # through Unidecode. For other data, you can modify _characters. See TRAINING_DATA.md for details. 6 | # ''' 7 | # from text import cmudict 8 | # 9 | # _pad = '_' 10 | # _eos = '~' 11 | # _characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!\'(),-.:;? ' 12 | # 13 | # # Prepend "@" to ARPAbet symbols to ensure uniqueness (some are the same as uppercase letters): 14 | # _arpabet = ['@' + s for s in cmudict.valid_symbols] 15 | # 16 | # # Export all symbols: 17 | # symbols = [_pad, _eos] + list(_characters) + _arpabet 18 | 19 | # coding: utf-8 20 | ''' 21 | Defines the set of symbols used in text input to the model. 22 | 23 | The default is a set of ASCII characters that works well for English or text that has been run 24 | through Unidecode. For other data, you can modify _characters. See TRAINING_DATA.md for details. 25 | ''' 26 | 27 | from .korean import ALL_SYMBOLS, PAD, EOS 28 | 29 | # For english 30 | en_symbols = PAD + EOS + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!\'(),-.:;? ' # <-For deployment(Because korean ALL_SYMBOLS follow this convention) 31 | 32 | symbols = ALL_SYMBOLS # for korean 33 | 34 | """ 35 | 초성과 종성은 같아보이지만, 다른 character이다. 36 | '_~ᄀᄁᄂᄃᄄᄅᄆᄇᄈᄉᄊᄋᄌᄍᄎᄏᄐᄑ하ᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵᆨᆩᆪᆫᆬᆭᆮᆯᆰᆱᆲᆳᆴᆵᆶᆷᆸᆹᆺᆻᆼᆽᆾᆿᇀᇁᇂ!'(),-.:;? ' 37 | '_': 0, '~': 1, 'ᄀ': 2, 'ᄁ': 3, 'ᄂ': 4, 'ᄃ': 5, 'ᄄ': 6, 'ᄅ': 7, 'ᄆ': 8, 'ᄇ': 9, 'ᄈ': 10, 38 | 'ᄉ': 11, 'ᄊ': 12, 'ᄋ': 13, 'ᄌ': 14, 'ᄍ': 15, 'ᄎ': 16, 'ᄏ': 17, 'ᄐ': 18, 'ᄑ': 19, 'ᄒ': 20, 39 | 'ᅡ': 21, 'ᅢ': 22, 'ᅣ': 23, 'ᅤ': 24, 'ᅥ': 25, 'ᅦ': 26, 'ᅧ': 27, 'ᅨ': 28, 'ᅩ': 29, 'ᅪ': 30, 40 | 'ᅫ': 31, 'ᅬ': 32, 'ᅭ': 33, 'ᅮ': 34, 'ᅯ': 35, 'ᅰ': 36, 'ᅱ': 37, 'ᅲ': 38, 'ᅳ': 39, 'ᅴ': 40, 41 | 'ᅵ': 41, 'ᆨ': 42, 'ᆩ': 43, 'ᆪ': 44, 'ᆫ': 45, 'ᆬ': 46, 'ᆭ': 47, 'ᆮ': 48, 'ᆯ': 49, 'ᆰ': 50, 42 | 'ᆱ': 51, 'ᆲ': 52, 'ᆳ': 53, 'ᆴ': 54, 'ᆵ': 55, 'ᆶ': 56, 'ᆷ': 57, 'ᆸ': 58, 'ᆹ': 59, 'ᆺ': 60, 43 | 'ᆻ': 61, 'ᆼ': 62, 'ᆽ': 63, 'ᆾ': 64, 'ᆿ': 65, 'ᇀ': 66, 'ᇁ': 67, 'ᇂ': 68, '!': 69, "'": 70, 44 | '(': 71, ')': 72, ',': 73, '-': 74, '.': 75, ':': 76, ';': 77, '?': 78, ' ': 79 45 | """ -------------------------------------------------------------------------------- /tests/text_test.py: -------------------------------------------------------------------------------- 1 | from text import cleaners, symbols, text_to_sequence, sequence_to_text 2 | from unidecode import unidecode 3 | 4 | 5 | def test_symbols(): 6 | assert len(symbols) >= 3 7 | assert symbols[0] == '_' 8 | assert symbols[1] == '~' 9 | 10 | 11 | def test_text_to_sequence(): 12 | assert text_to_sequence('', []) == [1] 13 | assert text_to_sequence('Hi!', []) == [9, 36, 54, 1] 14 | assert text_to_sequence('"A"_B', []) == [2, 3, 1] 15 | assert text_to_sequence('A {AW1 S} B', []) == [2, 64, 83, 132, 64, 3, 1] 16 | assert text_to_sequence('Hi', ['lowercase']) == [35, 36, 1] 17 | assert text_to_sequence('A {AW1 S} B', ['english_cleaners']) == [28, 64, 83, 132, 64, 29, 1] 18 | 19 | 20 | def test_sequence_to_text(): 21 | assert sequence_to_text([]) == '' 22 | assert sequence_to_text([1]) == '~' 23 | assert sequence_to_text([9, 36, 54, 1]) == 'Hi!~' 24 | assert sequence_to_text([2, 64, 83, 132, 64, 3]) == 'A {AW1 S} B' 25 | 26 | 27 | def test_collapse_whitespace(): 28 | assert cleaners.collapse_whitespace('') == '' 29 | assert cleaners.collapse_whitespace(' ') == ' ' 30 | assert cleaners.collapse_whitespace('x') == 'x' 31 | assert cleaners.collapse_whitespace(' x. y, \tz') == ' x. y, z' 32 | 33 | 34 | def test_convert_to_ascii(): 35 | assert cleaners.convert_to_ascii("raison d'être") == "raison d'etre" 36 | assert cleaners.convert_to_ascii('grüß gott') == 'gruss gott' 37 | assert cleaners.convert_to_ascii('안녕') == 'annyeong' 38 | assert cleaners.convert_to_ascii('Здравствуйте') == 'Zdravstvuite' 39 | 40 | 41 | def test_lowercase(): 42 | assert cleaners.lowercase('Happy Birthday!') == 'happy birthday!' 43 | assert cleaners.lowercase('CAFÉ') == 'café' 44 | 45 | 46 | def test_expand_abbreviations(): 47 | assert cleaners.expand_abbreviations('mr. and mrs. smith') == 'mister and misess smith' 48 | 49 | 50 | def test_expand_numbers(): 51 | assert cleaners.expand_numbers('3 apples and 44 pears') == 'three apples and forty-four pears' 52 | assert cleaners.expand_numbers('$3.50 for gas.') == 'three dollars, fifty cents for gas.' 53 | 54 | 55 | def test_cleaner_pipelines(): 56 | text = 'Mr. Müller ate 2 Apples' 57 | assert cleaners.english_cleaners(text) == 'mister muller ate two apples' 58 | assert cleaners.transliteration_cleaners(text) == 'mr. muller ate 2 apples' 59 | assert cleaners.basic_cleaners(text) == 'mr. müller ate 2 apples' 60 | 61 | -------------------------------------------------------------------------------- /text/cleaners.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | # Code based on https://github.com/keithito/tacotron/blob/master/text/cleaners.py 4 | 5 | import re 6 | from .korean import tokenize as ko_tokenize 7 | 8 | # # Added to support LJ_speech 9 | # from unidecode import unidecode 10 | # from .en_numbers import normalize_numbers as en_normalize_numbers 11 | 12 | # Regular expression matching whitespace: 13 | _whitespace_re = re.compile(r'\s+') 14 | 15 | 16 | def korean_cleaners(text): 17 | '''Pipeline for Korean text, including number and abbreviation expansion.''' 18 | text = ko_tokenize(text) # '존경하는' --> ['ᄌ', 'ᅩ', 'ᆫ', 'ᄀ', 'ᅧ', 'ᆼ', 'ᄒ', 'ᅡ', 'ᄂ', 'ᅳ', 'ᆫ', '~'] 19 | return text 20 | 21 | 22 | # # List of (regular expression, replacement) pairs for abbreviations: 23 | # _abbreviations = [(re.compile('\\b%s\\.' % x[0], re.IGNORECASE), x[1]) for x in [ 24 | # ('mrs', 'misess'), 25 | # ('mr', 'mister'), 26 | # ('dr', 'doctor'), 27 | # ('st', 'saint'), 28 | # ('co', 'company'), 29 | # ('jr', 'junior'), 30 | # ('maj', 'major'), 31 | # ('gen', 'general'), 32 | # ('drs', 'doctors'), 33 | # ('rev', 'reverend'), 34 | # ('lt', 'lieutenant'), 35 | # ('hon', 'honorable'), 36 | # ('sgt', 'sergeant'), 37 | # ('capt', 'captain'), 38 | # ('esq', 'esquire'), 39 | # ('ltd', 'limited'), 40 | # ('col', 'colonel'), 41 | # ('ft', 'fort'), 42 | # ]] 43 | 44 | 45 | # def expand_abbreviations(text): 46 | # for regex, replacement in _abbreviations: 47 | # text = re.sub(regex, replacement, text) 48 | # return text 49 | # 50 | # 51 | # def expand_numbers(text): 52 | # return en_normalize_numbers(text) 53 | 54 | 55 | def lowercase(text): 56 | return text.lower() 57 | 58 | 59 | def collapse_whitespace(text): 60 | return re.sub(_whitespace_re, ' ', text) 61 | 62 | 63 | # def convert_to_ascii(text): 64 | # return unidecode(text) 65 | 66 | 67 | def basic_cleaners(text): 68 | text = lowercase(text) 69 | text = collapse_whitespace(text) 70 | return text 71 | 72 | 73 | # def transliteration_cleaners(text): 74 | # # text = convert_to_ascii(text) 75 | # text = lowercase(text) 76 | # text = collapse_whitespace(text) 77 | # return text 78 | # 79 | # 80 | # def english_cleaners(text): 81 | # text = convert_to_ascii(text) 82 | # text = lowercase(text) 83 | # text = expand_numbers(text) 84 | # text = expand_abbreviations(text) 85 | # text = collapse_whitespace(text) 86 | # return text 87 | -------------------------------------------------------------------------------- /text/numbers.py: -------------------------------------------------------------------------------- 1 | import inflect 2 | import re 3 | 4 | _inflect = inflect.engine() 5 | _comma_number_re = re.compile(r'([0-9][0-9\,]+[0-9])') 6 | _decimal_number_re = re.compile(r'([0-9]+\.[0-9]+)') 7 | _pounds_re = re.compile(r'£([0-9\,]*[0-9]+)') 8 | _dollars_re = re.compile(r'\$([0-9\.\,]*[0-9]+)') 9 | _ordinal_re = re.compile(r'[0-9]+(st|nd|rd|th)') 10 | _number_re = re.compile(r'[0-9]+') 11 | 12 | 13 | def _remove_commas(m): 14 | return m.group(1).replace(',', '') 15 | 16 | 17 | def _expand_decimal_point(m): 18 | return m.group(1).replace('.', ' point ') 19 | 20 | 21 | def _expand_dollars(m): 22 | match = m.group(1) 23 | parts = match.split('.') 24 | if len(parts) > 2: 25 | return match + ' dollars' # Unexpected format 26 | dollars = int(parts[0]) if parts[0] else 0 27 | cents = int(parts[1]) if len(parts) > 1 and parts[1] else 0 28 | if dollars and cents: 29 | dollar_unit = 'dollar' if dollars == 1 else 'dollars' 30 | cent_unit = 'cent' if cents == 1 else 'cents' 31 | return '%s %s, %s %s' % (dollars, dollar_unit, cents, cent_unit) 32 | elif dollars: 33 | dollar_unit = 'dollar' if dollars == 1 else 'dollars' 34 | return '%s %s' % (dollars, dollar_unit) 35 | elif cents: 36 | cent_unit = 'cent' if cents == 1 else 'cents' 37 | return '%s %s' % (cents, cent_unit) 38 | else: 39 | return 'zero dollars' 40 | 41 | 42 | def _expand_ordinal(m): 43 | return _inflect.number_to_words(m.group(0)) 44 | 45 | 46 | def _expand_number(m): 47 | num = int(m.group(0)) 48 | if num > 1000 and num < 3000: 49 | if num == 2000: 50 | return 'two thousand' 51 | elif num > 2000 and num < 2010: 52 | return 'two thousand ' + _inflect.number_to_words(num % 100) 53 | elif num % 100 == 0: 54 | return _inflect.number_to_words(num // 100) + ' hundred' 55 | else: 56 | return _inflect.number_to_words(num, andword='', zero='oh', group=2).replace(', ', ' ') 57 | else: 58 | return _inflect.number_to_words(num, andword='') 59 | 60 | 61 | def normalize_numbers(text): 62 | text = re.sub(_comma_number_re, _remove_commas, text) 63 | text = re.sub(_pounds_re, r'\1 pounds', text) 64 | text = re.sub(_dollars_re, _expand_dollars, text) 65 | text = re.sub(_decimal_number_re, _expand_decimal_point, text) 66 | text = re.sub(_ordinal_re, _expand_ordinal, text) 67 | text = re.sub(_number_re, _expand_number, text) 68 | return text 69 | -------------------------------------------------------------------------------- /tests/numbers_test.py: -------------------------------------------------------------------------------- 1 | from text.numbers import normalize_numbers 2 | 3 | 4 | def test_normalize_numbers(): 5 | assert normalize_numbers('1') == 'one' 6 | assert normalize_numbers('15') == 'fifteen' 7 | assert normalize_numbers('24') == 'twenty-four' 8 | assert normalize_numbers('100') == 'one hundred' 9 | assert normalize_numbers('101') == 'one hundred one' 10 | assert normalize_numbers('456') == 'four hundred fifty-six' 11 | assert normalize_numbers('1000') == 'one thousand' 12 | assert normalize_numbers('1800') == 'eighteen hundred' 13 | assert normalize_numbers('2,000') == 'two thousand' 14 | assert normalize_numbers('3000') == 'three thousand' 15 | assert normalize_numbers('18000') == 'eighteen thousand' 16 | assert normalize_numbers('24,000') == 'twenty-four thousand' 17 | assert normalize_numbers('124,001') == 'one hundred twenty-four thousand one' 18 | assert normalize_numbers('6.4 sec') == 'six point four sec' 19 | 20 | 21 | def test_normalize_ordinals(): 22 | assert normalize_numbers('1st') == 'first' 23 | assert normalize_numbers('2nd') == 'second' 24 | assert normalize_numbers('9th') == 'ninth' 25 | assert normalize_numbers('243rd place') == 'two hundred and forty-third place' 26 | 27 | 28 | def test_normalize_dates(): 29 | assert normalize_numbers('1400') == 'fourteen hundred' 30 | assert normalize_numbers('1901') == 'nineteen oh one' 31 | assert normalize_numbers('1999') == 'nineteen ninety-nine' 32 | assert normalize_numbers('2000') == 'two thousand' 33 | assert normalize_numbers('2004') == 'two thousand four' 34 | assert normalize_numbers('2010') == 'twenty ten' 35 | assert normalize_numbers('2012') == 'twenty twelve' 36 | assert normalize_numbers('2025') == 'twenty twenty-five' 37 | assert normalize_numbers('September 11, 2001') == 'September eleven, two thousand one' 38 | assert normalize_numbers('July 26, 1984.') == 'July twenty-six, nineteen eighty-four.' 39 | 40 | 41 | def test_normalize_money(): 42 | assert normalize_numbers('$0.00') == 'zero dollars' 43 | assert normalize_numbers('$1') == 'one dollar' 44 | assert normalize_numbers('$10') == 'ten dollars' 45 | assert normalize_numbers('$.01') == 'one cent' 46 | assert normalize_numbers('$0.25') == 'twenty-five cents' 47 | assert normalize_numbers('$5.00') == 'five dollars' 48 | assert normalize_numbers('$5.01') == 'five dollars, one cent' 49 | assert normalize_numbers('$135.99.') == 'one hundred thirty-five dollars, ninety-nine cents.' 50 | assert normalize_numbers('$40,000') == 'forty thousand dollars' 51 | assert normalize_numbers('for £2500!') == 'for twenty-five hundred pounds!' 52 | -------------------------------------------------------------------------------- /preprocess.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import os 3 | from multiprocessing import cpu_count 4 | from tqdm import tqdm 5 | from datasets import blizzard, ljspeech, bible 6 | from hparams import hparams 7 | 8 | 9 | def preprocess_blizzard(args): 10 | in_dir = os.path.join(args.base_dir, 'Blizzard2012') 11 | out_dir = os.path.join(args.base_dir, args.output) 12 | os.makedirs(out_dir, exist_ok=True) 13 | metadata = blizzard.build_from_path(in_dir, out_dir, args.num_workers, tqdm=tqdm) 14 | write_metadata(metadata, out_dir) 15 | 16 | 17 | def preprocess_ljspeech(args): 18 | in_dir = os.path.join(args.base_dir, 'LJSpeech-1.1') 19 | out_dir = os.path.join(args.base_dir, args.output) 20 | os.makedirs(out_dir, exist_ok=True) 21 | metadata = ljspeech.build_from_path(in_dir, out_dir, args.num_workers, tqdm=tqdm) 22 | write_metadata(metadata, out_dir) 23 | 24 | 25 | def preprocess_bible(args): 26 | in_dir = os.path.join(args.base_dir, 'bible') 27 | out_dir = os.path.join(args.base_dir, args.output) 28 | os.makedirs(out_dir, exist_ok=True) 29 | metadata = bible.build_from_path(in_dir, out_dir, args.num_workers, tqdm=tqdm) 30 | write_metadata(metadata, out_dir) 31 | 32 | 33 | def preprocess_kss(args): 34 | in_dir = os.path.join(args.base_dir, 'kss') 35 | out_dir = os.path.join(args.base_dir, args.output) 36 | os.makedirs(out_dir, exist_ok=True) 37 | metadata = bible.build_from_path(in_dir, out_dir, args.num_workers, tqdm=tqdm) 38 | write_metadata(metadata, out_dir) 39 | 40 | 41 | def write_metadata(metadata, out_dir): 42 | with open(os.path.join(out_dir, 'train.txt'), 'w', encoding='utf-8') as f: 43 | for m in metadata: 44 | f.write('|'.join([str(x) for x in m]) + '\n') 45 | frames = sum([m[2] for m in metadata]) 46 | hours = frames * hparams.frame_shift_ms / (3600 * 1000) 47 | print('Wrote %d utterances, %d frames (%.2f hours)' % (len(metadata), frames, hours)) 48 | print('Max input length: %d' % max(len(m[3]) for m in metadata)) 49 | print('Max output length: %d' % max(m[2] for m in metadata)) 50 | 51 | 52 | def main(): 53 | parser = argparse.ArgumentParser() 54 | parser.add_argument('--base_dir', default=os.path.expanduser('~/jeewoo/Tacotron/')) 55 | parser.add_argument('--output', default='training') 56 | parser.add_argument('--dataset', required=True, choices=['blizzard', 'ljspeech', 'bible', 'kss']) 57 | parser.add_argument('--num_workers', type=int, default=cpu_count()) 58 | args = parser.parse_args() 59 | if args.dataset == 'blizzard': 60 | preprocess_blizzard(args) 61 | elif args.dataset == 'ljspeech': 62 | preprocess_ljspeech(args) 63 | elif args.dataset == 'bible': 64 | preprocess_bible(args) 65 | elif args.dataset == 'kss': 66 | preprocess_kss(args) 67 | 68 | 69 | if __name__ == "__main__": 70 | main() 71 | -------------------------------------------------------------------------------- /TRAINING_DATA.md: -------------------------------------------------------------------------------- 1 | # Training Data 2 | 3 | 4 | This repo supports the following speech datasets: 5 | * [LJ Speech](https://keithito.com/LJ-Speech-Dataset/) (Public Domain) 6 | * [Blizzard 2012](http://www.cstr.ed.ac.uk/projects/blizzard/2012/phase_one) (Creative Commons Attribution Share-Alike) 7 | 8 | You can use any other dataset if you write a preprocessor for it. 9 | 10 | 11 | ### Writing a Preprocessor 12 | 13 | Each training example consists of: 14 | 1. The text that was spoken 15 | 2. A mel-scale spectrogram of the audio 16 | 3. A linear-scale spectrogram of the audio 17 | 18 | The preprocessor is responsible for generating these. See [ljspeech.py](datasets/ljspeech.py) for a 19 | commented example. 20 | 21 | For each training example, a preprocessor should: 22 | 23 | 1. Load the audio file: 24 | ```python 25 | wav = audio.load_wav(wav_path) 26 | ``` 27 | 28 | 2. Compute linear-scale and mel-scale spectrograms (float32 numpy arrays): 29 | ```python 30 | spectrogram = audio.spectrogram(wav).astype(np.float32) 31 | mel_spectrogram = audio.melspectrogram(wav).astype(np.float32) 32 | ``` 33 | 34 | 3. Save the spectrograms to disk: 35 | ```python 36 | np.save(os.path.join(out_dir, spectrogram_filename), spectrogram.T, allow_pickle=False) 37 | np.save(os.path.join(out_dir, mel_spectrogram_filename), mel_spectrogram.T, allow_pickle=False) 38 | ``` 39 | Note that the transpose of the matrix returned by `audio.spectrogram` is saved so that it's 40 | in time-major format. 41 | 42 | 4. Generate a tuple `(spectrogram_filename, mel_spectrogram_filename, n_frames, text)` to 43 | write to train.txt. n_frames is just the length of the time axis of the spectrogram. 44 | 45 | 46 | After you've written your preprocessor, you can add it to [preprocess.py](preprocess.py) by 47 | following the example of the other preprocessors in that file. 48 | 49 | 50 | ### Non-English Data 51 | 52 | If your training data is in a language other than English, you will probably want to change the 53 | text cleaners by setting the `cleaners` hyperparameter. 54 | 55 | * If your text is in a Latin script or can be transliterated to ASCII using the 56 | [Unidecode](https://pypi.python.org/pypi/Unidecode) library, you can use the transliteration 57 | cleaners by setting the hyperparameter `cleaners=transliteration_cleaners`. 58 | 59 | * If you don't want to transliterate, you can define a custom character set. 60 | This allows you to train directly on the character set used in your data. 61 | 62 | To do so, edit [symbols.py](text/symbols.py) and change the `_characters` variable to be a 63 | string containing the UTF-8 characters in your data. Then set the hyperparameter `cleaners=basic_cleaners`. 64 | 65 | * If you're not sure which option to use, you can evaluate the transliteration cleaners like this: 66 | 67 | ```python 68 | from text import cleaners 69 | cleaners.transliteration_cleaners('Здравствуйте') # Replace with the text you want to try 70 | ``` 71 | -------------------------------------------------------------------------------- /datasets/ljspeech.py: -------------------------------------------------------------------------------- 1 | from concurrent.futures import ProcessPoolExecutor 2 | from functools import partial 3 | import numpy as np 4 | import os 5 | from util import audio 6 | 7 | 8 | def build_from_path(in_dir, out_dir, num_workers=1, tqdm=lambda x: x): 9 | '''Preprocesses the LJ Speech dataset from a given input path into a given output directory. 10 | 11 | Args: 12 | in_dir: The directory where you have downloaded the LJ Speech dataset 13 | out_dir: The directory to write the output into 14 | num_workers: Optional number of worker processes to parallelize across 15 | tqdm: You can optionally pass tqdm to get a nice progress bar 16 | 17 | Returns: 18 | A list of tuples describing the training examples. This should be written to train.txt 19 | ''' 20 | 21 | # We use ProcessPoolExecutor to parallelize across processes. This is just an optimization and you 22 | # can omit it and just call _process_utterance on each input if you want. 23 | executor = ProcessPoolExecutor(max_workers=num_workers) 24 | futures = [] 25 | index = 1 26 | with open(os.path.join(in_dir, 'metadata.csv'), encoding='utf-8') as f: 27 | for line in f: 28 | parts = line.strip().split('|') 29 | wav_path = os.path.join(in_dir, 'wavs', '%s.wav' % parts[0]) 30 | text = parts[2] 31 | futures.append(executor.submit(partial(_process_utterance, out_dir, index, wav_path, text))) 32 | index += 1 33 | return [future.result() for future in tqdm(futures)] 34 | 35 | 36 | def _process_utterance(out_dir, index, wav_path, text): 37 | '''Preprocesses a single utterance audio/text pair. 38 | 39 | This writes the mel and linear scale spectrograms to disk and returns a tuple to write 40 | to the train.txt file. 41 | 42 | Args: 43 | out_dir: The directory to write the spectrograms into 44 | index: The numeric index to use in the spectrogram filenames. 45 | wav_path: Path to the audio file containing the speech input 46 | text: The text spoken in the input audio file 47 | 48 | Returns: 49 | A (spectrogram_filename, mel_filename, n_frames, text) tuple to write to train.txt 50 | ''' 51 | 52 | # Load the audio to a numpy array: 53 | wav = audio.load_wav(wav_path) 54 | 55 | # Compute the linear-scale spectrogram from the wav: 56 | spectrogram = audio.spectrogram(wav).astype(np.float32) 57 | n_frames = spectrogram.shape[1] 58 | 59 | # Compute a mel-scale spectrogram from the wav: 60 | mel_spectrogram = audio.melspectrogram(wav).astype(np.float32) 61 | 62 | # Write the spectrograms to disk: 63 | spectrogram_filename = 'ljspeech-spec-%05d.npy' % index 64 | mel_filename = 'ljspeech-mel-%05d.npy' % index 65 | np.save(os.path.join(out_dir, spectrogram_filename), spectrogram.T, allow_pickle=False) 66 | np.save(os.path.join(out_dir, mel_filename), mel_spectrogram.T, allow_pickle=False) 67 | 68 | # Return a tuple describing this training example: 69 | return (spectrogram_filename, mel_filename, n_frames, text) 70 | -------------------------------------------------------------------------------- /datasets/blizzard.py: -------------------------------------------------------------------------------- 1 | from concurrent.futures import ProcessPoolExecutor 2 | from functools import partial 3 | import numpy as np 4 | import os 5 | from hparams import hparams 6 | from util import audio 7 | 8 | _max_out_length = 700 9 | _end_buffer = 0.05 10 | _min_confidence = 90 11 | 12 | # Note: "A Tramp Abroad" & "The Man That Corrupted Hadleyburg" are higher quality than the others. 13 | books = [ 14 | 'ATrampAbroad', 15 | 'TheManThatCorruptedHadleyburg', 16 | # 'LifeOnTheMississippi', 17 | # 'TheAdventuresOfTomSawyer', 18 | ] 19 | 20 | 21 | def build_from_path(in_dir, out_dir, num_workers=1, tqdm=lambda x: x): 22 | executor = ProcessPoolExecutor(max_workers=num_workers) 23 | futures = [] 24 | index = 1 25 | for book in books: 26 | with open(os.path.join(in_dir, book, 'sentence_index.txt')) as f: 27 | for line in f: 28 | parts = line.strip().split('\t') 29 | if line[0] is not '#' and len(parts) == 8 and float(parts[3]) > _min_confidence: 30 | wav_path = os.path.join(in_dir, book, 'wav', '%s.wav' % parts[0]) 31 | labels_path = os.path.join(in_dir, book, 'lab', '%s.lab' % parts[0]) 32 | text = parts[5] 33 | task = partial(_process_utterance, out_dir, index, wav_path, labels_path, text) 34 | futures.append(executor.submit(task)) 35 | index += 1 36 | results = [future.result() for future in tqdm(futures)] 37 | return [r for r in results if r is not None] 38 | 39 | 40 | def _process_utterance(out_dir, index, wav_path, labels_path, text): 41 | # Load the wav file and trim silence from the ends: 42 | wav = audio.load_wav(wav_path) 43 | start_offset, end_offset = _parse_labels(labels_path) 44 | start = int(start_offset * hparams.sample_rate) 45 | end = int(end_offset * hparams.sample_rate) if end_offset is not None else -1 46 | wav = wav[start:end] 47 | max_samples = _max_out_length * hparams.frame_shift_ms / 1000 * hparams.sample_rate 48 | if len(wav) > max_samples: 49 | return None 50 | spectrogram = audio.spectrogram(wav).astype(np.float32) 51 | n_frames = spectrogram.shape[1] 52 | mel_spectrogram = audio.melspectrogram(wav).astype(np.float32) 53 | spectrogram_filename = 'blizzard-spec-%05d.npy' % index 54 | mel_filename = 'blizzard-mel-%05d.npy' % index 55 | np.save(os.path.join(out_dir, spectrogram_filename), spectrogram.T, allow_pickle=False) 56 | np.save(os.path.join(out_dir, mel_filename), mel_spectrogram.T, allow_pickle=False) 57 | return (spectrogram_filename, mel_filename, n_frames, text) 58 | 59 | 60 | def _parse_labels(path): 61 | labels = [] 62 | with open(os.path.join(path)) as f: 63 | for line in f: 64 | parts = line.strip().split(' ') 65 | if len(parts) >= 3: 66 | labels.append((float(parts[0]), ' '.join(parts[2:]))) 67 | start = 0 68 | end = None 69 | if labels[0][1] == 'sil': 70 | start = labels[0][0] 71 | if labels[-1][1] == 'sil': 72 | end = labels[-2][0] + _end_buffer 73 | return (start, end) 74 | -------------------------------------------------------------------------------- /datasets/kss.py: -------------------------------------------------------------------------------- 1 | from concurrent.futures import ProcessPoolExecutor 2 | from functools import partial 3 | import numpy as np 4 | import os 5 | from util import audio 6 | 7 | 8 | def build_from_path(in_dir, out_dir, num_workers=1, tqdm=lambda x: x): 9 | '''Preprocesses the LJ Speech dataset from a given input path into a given output directory. 10 | 11 | Args: 12 | in_dir: The directory where you have downloaded the LJ Speech dataset 13 | out_dir: The directory to write the output into 14 | num_workers: Optional number of worker processes to parallelize across 15 | tqdm: You can optionally pass tqdm to get a nice progress bar 16 | 17 | Returns: 18 | A list of tuples describing the training examples. This should be written to train.txt 19 | ''' 20 | 21 | # We use ProcessPoolExecutor to parallelize across processes. This is just an optimization and you 22 | # can omit it and just call _process_utterance on each input if you want. 23 | executor = ProcessPoolExecutor(max_workers=num_workers) 24 | futures = [] 25 | index = 1 26 | with open(os.path.join(in_dir, 'metadata.csv'), encoding='utf-8') as f: 27 | for line in f: 28 | try: 29 | 30 | parts = line.strip().split('|') 31 | wav_path = os.path.join(in_dir, 'wavs', '%s' % parts[0]) 32 | text = parts[1] 33 | futures.append(executor.submit(partial(_process_utterance, out_dir, index, wav_path, text))) 34 | index += 1 35 | 36 | except: 37 | 38 | pass 39 | return [future.result() for future in tqdm(futures)] 40 | 41 | 42 | def _process_utterance(out_dir, index, wav_path, text): 43 | '''Preprocesses a single utterance audio/text pair. 44 | 45 | This writes the mel and linear scale spectrograms to disk and returns a tuple to write 46 | to the train.txt file. 47 | 48 | Args: 49 | out_dir: The directory to write the spectrograms into 50 | index: The numeric index to use in the spectrogram filenames. 51 | wav_path: Path to the audio file containing the speech input 52 | text: The text spoken in the input audio file 53 | 54 | Returns: 55 | A (spectrogram_filename, mel_filename, n_frames, text) tuple to write to train.txt 56 | ''' 57 | 58 | # Load the audio to a numpy array: 59 | wav = audio.load_wav(wav_path) 60 | 61 | # Compute the linear-scale spectrogram from the wav: 62 | spectrogram = audio.spectrogram(wav).astype(np.float32) 63 | n_frames = spectrogram.shape[1] 64 | 65 | # Compute a mel-scale spectrogram from the wav: 66 | mel_spectrogram = audio.melspectrogram(wav).astype(np.float32) 67 | 68 | # Write the spectrograms to disk: 69 | spectrogram_filename = 'kss-spec-%05d.npy' % index 70 | mel_filename = 'kss-mel-%05d.npy' % index 71 | np.save(os.path.join(out_dir, spectrogram_filename), spectrogram.T, allow_pickle=False) 72 | np.save(os.path.join(out_dir, mel_filename), mel_spectrogram.T, allow_pickle=False) 73 | 74 | # Return a tuple describing this training example: 75 | return (spectrogram_filename, mel_filename, n_frames, text) 76 | -------------------------------------------------------------------------------- /datasets/bible.py: -------------------------------------------------------------------------------- 1 | from concurrent.futures import ProcessPoolExecutor 2 | from functools import partial 3 | import numpy as np 4 | import os 5 | from util import audio 6 | 7 | 8 | def build_from_path(in_dir, out_dir, num_workers=1, tqdm=lambda x: x): 9 | '''Preprocesses the LJ Speech dataset from a given input path into a given output directory. 10 | 11 | Args: 12 | in_dir: The directory where you have downloaded the LJ Speech dataset 13 | out_dir: The directory to write the output into 14 | num_workers: Optional number of worker processes to parallelize across 15 | tqdm: You can optionally pass tqdm to get a nice progress bar 16 | 17 | Returns: 18 | A list of tuples describing the training examples. This should be written to train.txt 19 | ''' 20 | 21 | # We use ProcessPoolExecutor to parallelize across processes. This is just an optimization and you 22 | # can omit it and just call _process_utterance on each input if you want. 23 | executor = ProcessPoolExecutor(max_workers=num_workers) 24 | futures = [] 25 | index = 1 26 | with open(os.path.join(in_dir, 'metadata.csv'), encoding='utf-8') as f: 27 | for line in f: 28 | try: 29 | 30 | parts = line.strip().split('|') 31 | wav_path = os.path.join(in_dir, 'wavs', '%s' % parts[0]) 32 | text = parts[1] 33 | futures.append(executor.submit(partial(_process_utterance, out_dir, index, wav_path, text))) 34 | index += 1 35 | 36 | except: 37 | 38 | pass 39 | return [future.result() for future in tqdm(futures)] 40 | 41 | 42 | def _process_utterance(out_dir, index, wav_path, text): 43 | '''Preprocesses a single utterance audio/text pair. 44 | 45 | This writes the mel and linear scale spectrograms to disk and returns a tuple to write 46 | to the train.txt file. 47 | 48 | Args: 49 | out_dir: The directory to write the spectrograms into 50 | index: The numeric index to use in the spectrogram filenames. 51 | wav_path: Path to the audio file containing the speech input 52 | text: The text spoken in the input audio file 53 | 54 | Returns: 55 | A (spectrogram_filename, mel_filename, n_frames, text) tuple to write to train.txt 56 | ''' 57 | 58 | # Load the audio to a numpy array: 59 | wav = audio.load_wav(wav_path) 60 | 61 | # Compute the linear-scale spectrogram from the wav: 62 | spectrogram = audio.spectrogram(wav).astype(np.float32) 63 | n_frames = spectrogram.shape[1] 64 | 65 | # Compute a mel-scale spectrogram from the wav: 66 | mel_spectrogram = audio.melspectrogram(wav).astype(np.float32) 67 | 68 | # Write the spectrograms to disk: 69 | spectrogram_filename = 'bible-spec-%05d.npy' % index 70 | mel_filename = 'bible-mel-%05d.npy' % index 71 | np.save(os.path.join(out_dir, spectrogram_filename), spectrogram.T, allow_pickle=False) 72 | np.save(os.path.join(out_dir, mel_filename), mel_spectrogram.T, allow_pickle=False) 73 | 74 | # Return a tuple describing this training example: 75 | return (spectrogram_filename, mel_filename, n_frames, text) 76 | -------------------------------------------------------------------------------- /models/helpers.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import tensorflow as tf 3 | from tensorflow.contrib.seq2seq import Helper 4 | 5 | 6 | # Adapted from tf.contrib.seq2seq.GreedyEmbeddingHelper 7 | class TacoTestHelper(Helper): 8 | def __init__(self, batch_size, output_dim, r): 9 | with tf.name_scope('TacoTestHelper'): 10 | self._batch_size = batch_size 11 | self._output_dim = output_dim 12 | self._end_token = tf.tile([0.0], [output_dim * r]) 13 | 14 | @property 15 | def batch_size(self): 16 | return self._batch_size 17 | 18 | @property 19 | def sample_ids_shape(self): 20 | return tf.TensorShape([]) 21 | 22 | @property 23 | def sample_ids_dtype(self): 24 | return np.int32 25 | 26 | def initialize(self, name=None): 27 | return (tf.tile([False], [self._batch_size]), _go_frames(self._batch_size, self._output_dim)) 28 | 29 | def sample(self, time, outputs, state, name=None): 30 | return tf.tile([0], [self._batch_size]) # Return all 0; we ignore them 31 | 32 | def next_inputs(self, time, outputs, state, sample_ids, name=None): 33 | '''Stop on EOS. Otherwise, pass the last output as the next input and pass through state.''' 34 | with tf.name_scope('TacoTestHelper'): 35 | finished = tf.reduce_all(tf.equal(outputs, self._end_token), axis=1) 36 | # Feed last output frame as next input. outputs is [N, output_dim * r] 37 | next_inputs = outputs[:, -self._output_dim:] 38 | return (finished, next_inputs, state) 39 | 40 | 41 | class TacoTrainingHelper(Helper): 42 | def __init__(self, inputs, targets, output_dim, r): 43 | # inputs is [N, T_in], targets is [N, T_out, D] 44 | with tf.name_scope('TacoTrainingHelper'): 45 | self._batch_size = tf.shape(inputs)[0] 46 | self._output_dim = output_dim 47 | 48 | # Feed every r-th target frame as input 49 | self._targets = targets[:, r - 1::r, :] 50 | 51 | # Use full length for every target because we don't want to mask the padding frames 52 | num_steps = tf.shape(self._targets)[1] 53 | self._lengths = tf.tile([num_steps], [self._batch_size]) 54 | 55 | @property 56 | def batch_size(self): 57 | return self._batch_size 58 | 59 | @property 60 | def sample_ids_shape(self): 61 | return tf.TensorShape([]) 62 | 63 | @property 64 | def sample_ids_dtype(self): 65 | return np.int32 66 | 67 | def initialize(self, name=None): 68 | return (tf.tile([False], [self._batch_size]), _go_frames(self._batch_size, self._output_dim)) 69 | 70 | def sample(self, time, outputs, state, name=None): 71 | return tf.tile([0], [self._batch_size]) # Return all 0; we ignore them 72 | 73 | def next_inputs(self, time, outputs, state, sample_ids, name=None): 74 | with tf.name_scope(name or 'TacoTrainingHelper'): 75 | finished = (time + 1 >= self._lengths) 76 | next_inputs = self._targets[:, time, :] 77 | return (finished, next_inputs, state) 78 | 79 | 80 | def _go_frames(batch_size, output_dim): 81 | '''Returns all-zero frames for a given batch size and output dimension''' 82 | return tf.tile([[0.0]], [batch_size, output_dim]) 83 | -------------------------------------------------------------------------------- /demo_server.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import falcon 3 | from hparams import hparams, hparams_debug_string 4 | import os 5 | from synthesizer import Synthesizer 6 | 7 | html_body = '''Demo 8 | 19 | 20 |
21 | 22 | 23 |
24 |

25 | 26 | 56 | ''' 57 | 58 | 59 | class UIResource: 60 | def on_get(self, req, res): 61 | res.content_type = 'text/html' 62 | res.body = html_body 63 | 64 | 65 | class SynthesisResource: 66 | def on_get(self, req, res): 67 | if not req.params.get('text'): 68 | raise falcon.HTTPBadRequest() 69 | res.data = synthesizer.synthesize(req.params.get('text')) 70 | res.content_type = 'audio/wav' 71 | 72 | 73 | synthesizer = Synthesizer() 74 | api = falcon.API() 75 | api.add_route('/synthesize', SynthesisResource()) 76 | api.add_route('/', UIResource()) 77 | 78 | if __name__ == '__main__': 79 | from wsgiref import simple_server 80 | 81 | parser = argparse.ArgumentParser() 82 | parser.add_argument('--checkpoint', required=True, help='Full path to model checkpoint') 83 | parser.add_argument('--port', type=int, default=3000) 84 | parser.add_argument('--hparams', default='', 85 | help='Hyperparameter overrides as a comma-separated list of name=value pairs') 86 | parser.add_argument('--gpu', default='1') 87 | args = parser.parse_args() 88 | os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' 89 | hparams.parse(args.hparams) 90 | os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" 91 | os.environ["CUDA_VISIBLE_DEVICES"] = args.gpu 92 | print(hparams_debug_string()) 93 | synthesizer.load(args.checkpoint) 94 | print('Serving on port %d' % args.port) 95 | simple_server.make_server('0.0.0.0', args.port, api).serve_forever() 96 | else: 97 | synthesizer.load(os.environ['CHECKPOINT']) 98 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Tacotron 2 | 3 | Korean Speech Synthesis with Tacotron 4 | 5 | Note that this repo is based on https://github.com/keithito/tacotron 6 | 7 | ## Background 8 | 9 | In April 2017, Google published a paper, [Tacotron: Towards End-to-End Speech Synthesis](https://arxiv.org/pdf/1703.10135.pdf), 10 | where they present a neural text-to-speech model that learns to synthesize speech directly from 11 | (text, audio) pairs. However, they didn't release their source code or training data. This is an 12 | independent attempt to provide an open-source implementation of the model described in their paper. 13 | 14 | The quality isn't as good as Google's demo yet, but hopefully it will get there someday :-). 15 | Pull requests are welcome! 16 | 17 | 18 | ## Quick Start 19 | 20 | ### Installing dependencies 21 | 22 | 1. Install Python 3. 23 | 24 | 2. Install the latest version of [TensorFlow](https://www.tensorflow.org/install/) for your platform. For better 25 | performance, install with GPU support if it's available. This code works with TensorFlow 1.3 and later. 26 | 27 | 3. Install requirements: 28 | ``` 29 | pip install -r requirements.txt 30 | ``` 31 | 32 | 33 | ### Using a pre-trained model 34 | 35 | 1. **Download and unpack a model**: 36 | ``` 37 | curl http://data.keithito.com/data/speech/tacotron-20180906.tar.gz | tar xzC /tmp 38 | ``` 39 | 40 | 2. **Run the demo server**: 41 | ``` 42 | python3 demo_server.py --checkpoint /tmp/tacotron-20180906/model.ckpt 43 | ``` 44 | 45 | 3. **Point your browser at localhost:3000** 46 | * Type what you want to synthesize 47 | 48 | 49 | 50 | ### Training 51 | 52 | *Note: you need at least 40GB of free disk space to train a model.* 53 | 54 | 1. **Download a speech dataset.** 55 | 56 | The following are supported out of the box: 57 | * [KSS Dataset](https://www.kaggle.com/bryanpark/korean-single-speaker-speech-dataset) (Public Domain) 58 | 59 | You can use other datasets if you convert them to the right format. See [TRAINING_DATA.md](TRAINING_DATA.md) for more info. 60 | 61 | 62 | 2. **Unpack the dataset into `~/tacotron`** 63 | 64 | After unpacking, your tree should look like this for Korean Single Speaker Dataset: 65 | ``` 66 | tacotron 67 | |- kss 68 | |- metadata.csv 69 | |- wavs 70 | ``` 71 | 72 | 3. **Preprocess the data** 73 | ``` 74 | python3 preprocess.py --dataset kss 75 | ``` 76 | 77 | 4. **Train a model** 78 | ``` 79 | python3 train.py 80 | ``` 81 | 82 | Tunable hyperparameters are found in [hparams.py](hparams.py). You can adjust these at the command 83 | line using the `--hparams` flag, for example `--hparams="batch_size=16,outputs_per_step=2"`. 84 | Hyperparameters should generally be set to the same values at both training and eval time. 85 | The default hyperparameters are recommended for LJ Speech and other English-language data. 86 | See [TRAINING_DATA.md](TRAINING_DATA.md) for other languages. 87 | 88 | 89 | 5. **Monitor with Tensorboard** (optional) 90 | ``` 91 | tensorboard --logdir ~/tacotron/logs-tacotron 92 | ``` 93 | 94 | The trainer dumps audio and alignments every 1000 steps. You can find these in 95 | `~/tacotron/logs-tacotron`. 96 | 97 | 6. **Synthesize from a checkpoint** 98 | ``` 99 | python3 demo_server.py --checkpoint ~/tacotron/logs-tacotron/model.ckpt-185000 100 | ``` 101 | Replace "185000" with the checkpoint number that you want to use, then open a browser 102 | to `localhost:9000` and type what you want to speak. Alternately, you can 103 | run [eval.py](eval.py) at the command line: 104 | ``` 105 | python3 eval.py --checkpoint ~/tacotron/logs-tacotron/model.ckpt-185000 106 | ``` 107 | If you set the `--hparams` flag when training, set the same value here. 108 | 109 | ## Modifications 110 | 111 | * We changed GRU cells with LSTM Zoneout cells (20.01.20) 112 | -------------------------------------------------------------------------------- /text/__init__.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | import re 3 | import string 4 | import numpy as np 5 | 6 | from text import cleaners 7 | from hparams import hparams 8 | from text.symbols import symbols, en_symbols, PAD, EOS 9 | from text.korean import jamo_to_korean 10 | 11 | # Mappings from symbol to numeric ID and vice versa: 12 | _symbol_to_id = {s: i for i, s in enumerate(symbols)} 13 | _id_to_symbol = {i: s for i, s in enumerate(symbols)} 14 | isEn = False 15 | 16 | # Regular expression matching text enclosed in curly braces: 17 | _curly_re = re.compile(r'(.*?)\{(.+?)\}(.*)') 18 | 19 | puncuation_table = str.maketrans({key: None for key in string.punctuation}) 20 | 21 | 22 | def convert_to_en_symbols(): 23 | '''Converts built-in korean symbols to english, to be used for english training 24 | 25 | ''' 26 | global _symbol_to_id, _id_to_symbol, isEn 27 | if not isEn: 28 | print(" [!] Converting to english mode") 29 | _symbol_to_id = {s: i for i, s in enumerate(en_symbols)} 30 | _id_to_symbol = {i: s for i, s in enumerate(en_symbols)} 31 | isEn = True 32 | 33 | 34 | def remove_puncuations(text): 35 | return text.translate(puncuation_table) 36 | 37 | 38 | # def text_to_sequence(text, as_token=False): 39 | # cleaner_names = [x.strip() for x in hparams.cleaners.split(',')] 40 | # if ('english_cleaners' in cleaner_names) and isEn == False: 41 | # convert_to_en_symbols() 42 | # else: 43 | # 44 | # return _text_to_sequence(text, cleaner_names, as_token) 45 | 46 | 47 | def text_to_sequence(text, cleaner_names): 48 | '''Converts a string of text to a sequence of IDs corresponding to the symbols in the text. 49 | The text can optionally have ARPAbet sequences enclosed in curly braces embedded 50 | in it. For example, "Turn left on {HH AW1 S S T AH0 N} Street." 51 | Args: 52 | text: string to convert to a sequence 53 | cleaner_names: names of the cleaner functions to run the text through 54 | Returns: 55 | List of integers corresponding to the symbols in the text 56 | ''' 57 | sequence = [] 58 | 59 | # Check for curly braces and treat their contents as ARPAbet: 60 | while len(text): 61 | m = _curly_re.match(text) 62 | if not m: 63 | sequence += _symbols_to_sequence(_clean_text(text, cleaner_names)) 64 | break 65 | sequence += _symbols_to_sequence(_clean_text(m.group(1), cleaner_names)) 66 | sequence += _arpabet_to_sequence(m.group(2)) 67 | text = m.group(3) 68 | 69 | # Append EOS token 70 | sequence.append(_symbol_to_id[EOS]) # [14, 29, 45, 2, 27, 62, 20, 21, 4, 39, 45, 1] 71 | 72 | # if as_token: 73 | # return sequence_to_text(sequence, combine_jamo=True) 74 | # else: 75 | return np.array(sequence, dtype=np.int32) 76 | 77 | 78 | def sequence_to_text(sequence, skip_eos_and_pad=False, combine_jamo=False): 79 | '''Converts a sequence of IDs back to a string''' 80 | cleaner_names = [x.strip() for x in hparams.cleaners.split(',')] 81 | if 'english_cleaners' in cleaner_names and isEn == False: 82 | convert_to_en_symbols() 83 | 84 | result = '' 85 | for symbol_id in sequence: 86 | if symbol_id in _id_to_symbol: 87 | s = _id_to_symbol[symbol_id] 88 | # Enclose ARPAbet back in curly braces: 89 | if len(s) > 1 and s[0] == '@': 90 | s = '{%s}' % s[1:] 91 | 92 | if not skip_eos_and_pad or s not in [EOS, PAD]: 93 | result += s 94 | 95 | result = result.replace('}{', ' ') 96 | 97 | if combine_jamo: 98 | return jamo_to_korean(result) 99 | else: 100 | return result 101 | 102 | 103 | def _clean_text(text, cleaner_names): 104 | for name in cleaner_names: 105 | cleaner = getattr(cleaners, name) 106 | if not cleaner: 107 | raise Exception('Unknown cleaner: %s' % name) 108 | text = cleaner(text) # '존경하는' --> ['ᄌ', 'ᅩ', 'ᆫ', 'ᄀ', 'ᅧ', 'ᆼ', 'ᄒ', 'ᅡ', 'ᄂ', 'ᅳ', 'ᆫ', '~'] 109 | return text 110 | 111 | 112 | def _symbols_to_sequence(symbols): 113 | return [_symbol_to_id[s] for s in symbols if _should_keep_symbol(s)] 114 | 115 | 116 | def _arpabet_to_sequence(text): 117 | return _symbols_to_sequence(['@' + s for s in text.split()]) 118 | 119 | 120 | def _should_keep_symbol(s): 121 | return s in _symbol_to_id and s is not '_' and s is not '~' 122 | -------------------------------------------------------------------------------- /text/kor_dic.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | etc_dictionary = { 4 | '2 30대': '이삼십대', 5 | '20~30대': '이삼십대', 6 | '20, 30대': '이십대 삼십대', 7 | '1+1': '원플러스원', 8 | '3에서 6개월인': '3개월에서 육개월인', 9 | } 10 | 11 | english_dictionary = { 12 | 'Devsisters': '데브시스터즈', 13 | 'track': '트랙', 14 | 15 | # krbook 16 | 'LA': '엘에이', 17 | 'LG': '엘지', 18 | 'KOREA': '코리아', 19 | 'JSA': '제이에스에이', 20 | 'PGA': '피지에이', 21 | 'GA': '지에이', 22 | 'idol': '아이돌', 23 | 'KTX': '케이티엑스', 24 | 'AC': '에이씨', 25 | 'DVD': '디비디', 26 | 'US': '유에스', 27 | 'CNN': '씨엔엔', 28 | 'LPGA': '엘피지에이', 29 | 'P': '피', 30 | 'L': '엘', 31 | 'T': '티', 32 | 'B': '비', 33 | 'C': '씨', 34 | 'BIFF': '비아이에프에프', 35 | 'GV': '지비', 36 | 37 | # JTBC 38 | 'IT': '아이티', 39 | 'IQ': '아이큐', 40 | 'JTBC': '제이티비씨', 41 | 'trickle down effect': '트리클 다운 이펙트', 42 | 'trickle up effect': '트리클 업 이펙트', 43 | 'down': '다운', 44 | 'up': '업', 45 | 'FCK': '에프씨케이', 46 | 'AP': '에이피', 47 | 'WHERETHEWILDTHINGSARE': '', 48 | 'Rashomon Effect': '', 49 | 'O': '오', 50 | 'OO': '오오', 51 | 'B': '비', 52 | 'GDP': '지디피', 53 | 'CIPA': '씨아이피에이', 54 | 'YS': '와이에스', 55 | 'Y': '와이', 56 | 'S': '에스', 57 | 'JTBC': '제이티비씨', 58 | 'PC': '피씨', 59 | 'bill': '빌', 60 | 'Halmuny': '하모니', ##### 61 | 'X': '엑스', 62 | 'SNS': '에스엔에스', 63 | 'ability': '어빌리티', 64 | 'shy': '', 65 | 'CCTV': '씨씨티비', 66 | 'IT': '아이티', 67 | 'the tenth man': '더 텐쓰 맨', #### 68 | 'L': '엘', 69 | 'PC': '피씨', 70 | 'YSDJJPMB': '', ######## 71 | 'Content Attitude Timing': '컨텐트 애티튜드 타이밍', 72 | 'CAT': '캣', 73 | 'IS': '아이에스', 74 | 'SNS': '에스엔에스', 75 | 'K': '케이', 76 | 'Y': '와이', 77 | 'KDI': '케이디아이', 78 | 'DOC': '디오씨', 79 | 'CIA': '씨아이에이', 80 | 'PBS': '피비에스', 81 | 'D': '디', 82 | 'PPropertyPositionPowerPrisonP' 83 | 'S': '에스', 84 | 'francisco': '프란시스코', 85 | 'I': '아이', 86 | 'III': '아이아이', ###### 87 | 'No joke': '노 조크', 88 | 'BBK': '비비케이', 89 | 'LA': '엘에이', 90 | 'Don': '', 91 | 't worry be happy': ' 워리 비 해피', 92 | 'NO': '엔오', ##### 93 | 'it was our sky': '잇 워즈 아워 스카이', 94 | 'it is our sky': '잇 이즈 아워 스카이', #### 95 | 'NEIS': '엔이아이에스', ##### 96 | 'IMF': '아이엠에프', 97 | 'apology': '어폴로지', 98 | 'humble': '험블', 99 | 'M': '엠', 100 | 'Nowhere Man': '노웨어 맨', 101 | 'The Tenth Man': '더 텐쓰 맨', 102 | 'PBS': '피비에스', 103 | 'BBC': '비비씨', 104 | 'MRJ': '엠알제이', 105 | 'CCTV': '씨씨티비', 106 | 'Pick me up': '픽 미 업', 107 | 'DNA': '디엔에이', 108 | 'UN': '유엔', 109 | 'STOP': '스탑', ##### 110 | 'PRESS': '프레스', ##### 111 | 'not to be': '낫 투비', 112 | 'Denial': '디나이얼', 113 | 'G': '지', 114 | 'IMF': '아이엠에프', 115 | 'GDP': '지디피', 116 | 'JTBC': '제이티비씨', 117 | 'Time flies like an arrow': '타임 플라이즈 라이크 언 애로우', 118 | 'DDT': '디디티', 119 | 'AI': '에이아이', 120 | 'Z': '제트', 121 | 'OECD': '오이씨디', 122 | 'N': '앤', 123 | 'A': '에이', 124 | 'MB': '엠비', 125 | 'EH': '이에이치', 126 | 'IS': '아이에스', 127 | 'TV': '티비', 128 | 'MIT': '엠아이티', 129 | 'KBO': '케이비오', 130 | 'I love America': '아이 러브 아메리카', 131 | 'SF': '에스에프', 132 | 'Q': '큐', 133 | 'KFX': '케이에프엑스', 134 | 'PM': '피엠', 135 | 'Prime Minister': '프라임 미니스터', 136 | 'Swordline': '스워드라인', 137 | 'TBS': '티비에스', 138 | 'DDT': '디디티', 139 | 'CS': '씨에스', 140 | 'Reflecting Absence': '리플렉팅 앱센스', 141 | 'PBS': '피비에스', 142 | 'Drum being beaten by everyone': '드럼 빙 비튼 바이 에브리원', 143 | 'negative pressure': '네거티브 프레셔', 144 | 'F': '에프', 145 | 'KIA': '기아', 146 | 'FTA': '에프티에이', 147 | 'Que sais-je': '', 148 | 'UFC': '유에프씨', 149 | 'P': '피', 150 | 'DJ': '디제이', 151 | 'Chaebol': '채벌', 152 | 'BBC': '비비씨', 153 | 'OECD': '오이씨디', 154 | 'BC': '삐씨', 155 | 'C': '씨', 156 | 'B': '씨', 157 | 'KY': '케이와이', 158 | 'K': '케이', 159 | 'CEO': '씨이오', 160 | 'YH': '와이에치', 161 | 'IS': '아이에스', 162 | 'who are you': '후 얼 유', 163 | 'Y': '와이', 164 | 'The Devils Advocate': '더 데빌즈 어드보카트', 165 | 'YS': '와이에스', 166 | 'so sorry': '쏘 쏘리', 167 | 'Santa': '산타', 168 | 'Big Endian': '빅 엔디안', 169 | 'Small Endian': '스몰 엔디안', 170 | 'Oh Captain My Captain': '오 캡틴 마이 캡틴', 171 | 'AIB': '에이아이비', 172 | 'K': '케이', 173 | 'PBS': '피비에스', 174 | } -------------------------------------------------------------------------------- /LJSpeech-1.1/README: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------- 2 | The LJ Speech Dataset 3 | 4 | Version 1.0 5 | July 5, 2017 6 | https://keithito.com/LJ-Speech-Dataset 7 | ----------------------------------------------------------------------------- 8 | 9 | 10 | OVERVIEW 11 | 12 | This is a public domain speech dataset consisting of 13,100 short audio clips 13 | of a single speaker reading passages from 7 non-fiction books. A transcription 14 | is provided for each clip. Clips vary in length from 1 to 10 seconds and have 15 | a total length of approximately 24 hours. 16 | 17 | The texts were published between 1884 and 1964, and are in the public domain. 18 | The audio was recorded in 2016-17 by the LibriVox project and is also in the 19 | public domain. 20 | 21 | 22 | 23 | FILE FORMAT 24 | 25 | Metadata is provided in metadata.csv. This file consists of one record per 26 | line, delimited by the pipe character (0x7c). The fields are: 27 | 28 | 1. ID: this is the name of the corresponding .wav file 29 | 2. Transcription: words spoken by the reader (UTF-8) 30 | 3. Normalized Transcription: transcription with numbers, ordinals, and 31 | monetary units expanded into full words (UTF-8). 32 | 33 | Each audio file is a single-channel 16-bit PCM WAV with a sample rate of 34 | 22050 Hz. 35 | 36 | 37 | 38 | STATISTICS 39 | 40 | Total Clips 13,100 41 | Total Words 225,715 42 | Total Characters 1,308,674 43 | Total Duration 23:55:17 44 | Mean Clip Duration 6.57 sec 45 | Min Clip Duration 1.11 sec 46 | Max Clip Duration 10.10 sec 47 | Mean Words per Clip 17.23 48 | Distinct Words 13,821 49 | 50 | 51 | 52 | MISCELLANEOUS 53 | 54 | The audio clips range in length from approximately 1 second to 10 seconds. 55 | They were segmented automatically based on silences in the recording. Clip 56 | boundaries generally align with sentence or clause boundaries, but not always. 57 | 58 | The text was matched to the audio manually, and a QA pass was done to ensure 59 | that the text accurately matched the words spoken in the audio. 60 | 61 | The original LibriVox recordings were distributed as 128 kbps MP3 files. As a 62 | result, they may contain artifacts introduced by the MP3 encoding. 63 | 64 | The following abbreviations appear in the text. They may be expanded as 65 | follows: 66 | 67 | Abbreviation Expansion 68 | -------------------------- 69 | Mr. Mister 70 | Mrs. Misess (*) 71 | Dr. Doctor 72 | No. Number 73 | St. Saint 74 | Co. Company 75 | Jr. Junior 76 | Maj. Major 77 | Gen. General 78 | Drs. Doctors 79 | Rev. Reverend 80 | Lt. Lieutenant 81 | Hon. Honorable 82 | Sgt. Sergeant 83 | Capt. Captain 84 | Esq. Esquire 85 | Ltd. Limited 86 | Col. Colonel 87 | Ft. Fort 88 | 89 | * there's no standard expansion of "Mrs." 90 | 91 | 92 | 19 of the transcriptions contain non-ASCII characters (for example, LJ016-0257 93 | contains "raison d'être"). 94 | 95 | For more information or to report errors, please email kito@kito.us. 96 | 97 | 98 | 99 | LICENSE 100 | 101 | This dataset is in the public domain in the USA (and likely other countries as 102 | well). There are no restrictions on its use. For more information, please see: 103 | https://librivox.org/pages/public-domain. 104 | 105 | 106 | CHANGELOG 107 | 108 | * 1.0 (July 8, 2017): 109 | Initial release 110 | 111 | * 1.1 (Feb 19, 2018): 112 | Version 1.0 included 30 .wav files with no corresponding annotations in 113 | metadata.csv. These have been removed in version 1.1. Thanks to Rafael Valle 114 | for spotting this. 115 | 116 | 117 | CREDITS 118 | 119 | This dataset consists of excerpts from the following works: 120 | 121 | * Morris, William, et al. Arts and Crafts Essays. 1893. 122 | * Griffiths, Arthur. The Chronicles of Newgate, Vol. 2. 1884. 123 | * Roosevelt, Franklin D. The Fireside Chats of Franklin Delano Roosevelt. 124 | 1933-42. 125 | * Harland, Marion. Marion Harland's Cookery for Beginners. 1893. 126 | * Rolt-Wheeler, Francis. The Science - History of the Universe, Vol. 5: 127 | Biology. 1910. 128 | * Banks, Edgar J. The Seven Wonders of the Ancient World. 1916. 129 | * President's Commission on the Assassination of President Kennedy. Report 130 | of the President's Commission on the Assassination of President Kennedy. 131 | 1964. 132 | 133 | Recordings by Linda Johnson. Alignment and annotation by Keith Ito. All text, 134 | audio, and annotations are in the public domain. 135 | 136 | There's no requirement to cite this work, but if you'd like to do so, you can 137 | link to: https://keithito.com/LJ-Speech-Dataset 138 | 139 | or use the following: 140 | @misc{ljspeech17, 141 | author = {Keith Ito}, 142 | title = {The LJ Speech Dataset}, 143 | howpublished = {\url{https://keithito.com/LJ-Speech-Dataset/}}, 144 | year = 2017 145 | } 146 | -------------------------------------------------------------------------------- /util/audio.py: -------------------------------------------------------------------------------- 1 | import librosa 2 | import librosa.filters 3 | import math 4 | import numpy as np 5 | import tensorflow as tf 6 | import scipy 7 | from hparams import hparams 8 | 9 | 10 | def load_wav(path): 11 | return librosa.core.load(path, sr=hparams.sample_rate)[0] 12 | 13 | 14 | def save_wav(wav, path): 15 | wav *= 32767 / max(0.01, np.max(np.abs(wav))) 16 | scipy.io.wavfile.write(path, hparams.sample_rate, wav.astype(np.int16)) 17 | 18 | 19 | def preemphasis(x): 20 | return scipy.signal.lfilter([1, -hparams.preemphasis], [1], x) 21 | 22 | 23 | def inv_preemphasis(x): 24 | return scipy.signal.lfilter([1], [1, -hparams.preemphasis], x) 25 | 26 | 27 | def spectrogram(y): 28 | D = _stft(preemphasis(y)) 29 | S = _amp_to_db(np.abs(D)) - hparams.ref_level_db 30 | return _normalize(S) 31 | 32 | 33 | def inv_spectrogram(spectrogram): 34 | '''Converts spectrogram to waveform using librosa''' 35 | S = _db_to_amp(_denormalize(spectrogram) + hparams.ref_level_db) # Convert back to linear 36 | return inv_preemphasis(_griffin_lim(S ** hparams.power)) # Reconstruct phase 37 | 38 | 39 | def inv_spectrogram_tensorflow(spectrogram): 40 | '''Builds computational graph to convert spectrogram to waveform using TensorFlow. 41 | 42 | Unlike inv_spectrogram, this does NOT invert the preemphasis. The caller should call 43 | inv_preemphasis on the output after running the graph. 44 | ''' 45 | S = _db_to_amp_tensorflow(_denormalize_tensorflow(spectrogram) + hparams.ref_level_db) 46 | return _griffin_lim_tensorflow(tf.pow(S, hparams.power)) 47 | 48 | 49 | def melspectrogram(y): 50 | D = _stft(preemphasis(y)) 51 | S = _amp_to_db(_linear_to_mel(np.abs(D))) - hparams.ref_level_db 52 | return _normalize(S) 53 | 54 | 55 | def find_endpoint(wav, threshold_db=-40, min_silence_sec=0.8): 56 | window_length = int(hparams.sample_rate * min_silence_sec) 57 | hop_length = int(window_length / 4) 58 | threshold = _db_to_amp(threshold_db) 59 | for x in range(hop_length, len(wav) - window_length, hop_length): 60 | if np.max(wav[x:x + window_length]) < threshold: 61 | return x + hop_length 62 | return len(wav) 63 | 64 | 65 | def _griffin_lim(S): 66 | '''librosa implementation of Griffin-Lim 67 | Based on https://github.com/librosa/librosa/issues/434 68 | ''' 69 | angles = np.exp(2j * np.pi * np.random.rand(*S.shape)) 70 | S_complex = np.abs(S).astype(np.complex) 71 | y = _istft(S_complex * angles) 72 | for i in range(hparams.griffin_lim_iters): 73 | angles = np.exp(1j * np.angle(_stft(y))) 74 | y = _istft(S_complex * angles) 75 | return y 76 | 77 | 78 | def _griffin_lim_tensorflow(S): 79 | '''TensorFlow implementation of Griffin-Lim 80 | Based on https://github.com/Kyubyong/tensorflow-exercises/blob/master/Audio_Processing.ipynb 81 | ''' 82 | with tf.variable_scope('griffinlim'): 83 | # TensorFlow's stft and istft operate on a batch of spectrograms; create batch of size 1 84 | S = tf.expand_dims(S, 0) 85 | S_complex = tf.identity(tf.cast(S, dtype=tf.complex64)) 86 | y = _istft_tensorflow(S_complex) 87 | for i in range(hparams.griffin_lim_iters): 88 | est = _stft_tensorflow(y) 89 | angles = est / tf.cast(tf.maximum(1e-8, tf.abs(est)), tf.complex64) 90 | y = _istft_tensorflow(S_complex * angles) 91 | return tf.squeeze(y, 0) 92 | 93 | 94 | def _stft(y): 95 | n_fft, hop_length, win_length = _stft_parameters() 96 | return librosa.stft(y=y, n_fft=n_fft, hop_length=hop_length, win_length=win_length) 97 | 98 | 99 | def _istft(y): 100 | _, hop_length, win_length = _stft_parameters() 101 | return librosa.istft(y, hop_length=hop_length, win_length=win_length) 102 | 103 | 104 | def _stft_tensorflow(signals): 105 | n_fft, hop_length, win_length = _stft_parameters() 106 | return tf.contrib.signal.stft(signals, win_length, hop_length, n_fft, pad_end=False) 107 | 108 | 109 | def _istft_tensorflow(stfts): 110 | n_fft, hop_length, win_length = _stft_parameters() 111 | return tf.contrib.signal.inverse_stft(stfts, win_length, hop_length, n_fft) 112 | 113 | 114 | def _stft_parameters(): 115 | n_fft = (hparams.num_freq - 1) * 2 116 | hop_length = int(hparams.frame_shift_ms / 1000 * hparams.sample_rate) 117 | win_length = int(hparams.frame_length_ms / 1000 * hparams.sample_rate) 118 | return n_fft, hop_length, win_length 119 | 120 | 121 | # Conversions: 122 | 123 | _mel_basis = None 124 | 125 | 126 | def _linear_to_mel(spectrogram): 127 | global _mel_basis 128 | if _mel_basis is None: 129 | _mel_basis = _build_mel_basis() 130 | return np.dot(_mel_basis, spectrogram) 131 | 132 | 133 | def _build_mel_basis(): 134 | n_fft = (hparams.num_freq - 1) * 2 135 | return librosa.filters.mel(hparams.sample_rate, n_fft, n_mels=hparams.num_mels) 136 | 137 | 138 | def _amp_to_db(x): 139 | return 20 * np.log10(np.maximum(1e-5, x)) 140 | 141 | 142 | def _db_to_amp(x): 143 | return np.power(10.0, x * 0.05) 144 | 145 | 146 | def _db_to_amp_tensorflow(x): 147 | return tf.pow(tf.ones(tf.shape(x)) * 10.0, x * 0.05) 148 | 149 | 150 | def _normalize(S): 151 | return np.clip((S - hparams.min_level_db) / -hparams.min_level_db, 0, 1) 152 | 153 | 154 | def _denormalize(S): 155 | return (np.clip(S, 0, 1) * -hparams.min_level_db) + hparams.min_level_db 156 | 157 | 158 | def _denormalize_tensorflow(S): 159 | return (tf.clip_by_value(S, 0, 1) * -hparams.min_level_db) + hparams.min_level_db 160 | -------------------------------------------------------------------------------- /models/rnn_wrappers.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import tensorflow as tf 3 | from tensorflow.contrib.rnn import RNNCell 4 | from tensorflow.python.ops import rnn_cell_impl 5 | # from tensorflow.contrib.data.python.util import nest 6 | # from tensorflow.contrib.framework import nest 7 | # from tensorflow.contrib.seq2seq.python.ops.attention_wrapper import _bahdanau_score, _BaseAttentionMechanism, \ 8 | # BahdanauAttention, \ 9 | # AttentionWrapperState, AttentionMechanism, _BaseMonotonicAttentionMechanism, _maybe_mask_score, _prepare_memory, \ 10 | # _monotonic_probability_fn 11 | # from tensorflow.python.ops import array_ops, math_ops, nn_ops, variable_scope 12 | # from tensorflow.python.layers.core import Dense 13 | from .modules import prenet 14 | import functools 15 | 16 | _zero_state_tensors = rnn_cell_impl._zero_state_tensors 17 | 18 | class ZoneoutLSTMCell(RNNCell): 19 | '''Wrapper for tf LSTM to create Zoneout LSTM Cell 20 | inspired by: 21 | https://github.com/teganmaharaj/zoneout/blob/master/zoneout_tensorflow.py 22 | Published by one of 'https://arxiv.org/pdf/1606.01305.pdf' paper writers. 23 | Many thanks to @Ondal90 for pointing this out. You sir are a hero! 24 | ''' 25 | 26 | def __init__(self, num_units, is_training, zoneout_factor_cell=0., zoneout_factor_output=0., state_is_tuple=True, 27 | name=None): 28 | '''Initializer with possibility to set different zoneout values for cell/hidden states. 29 | ''' 30 | zm = min(zoneout_factor_output, zoneout_factor_cell) 31 | zs = max(zoneout_factor_output, zoneout_factor_cell) 32 | 33 | if zm < 0. or zs > 1.: 34 | raise ValueError('One/both provided Zoneout factors are not in [0, 1]') 35 | 36 | self._cell = tf.nn.rnn_cell.LSTMCell(num_units, state_is_tuple=state_is_tuple, name=name) 37 | self._zoneout_cell = zoneout_factor_cell 38 | self._zoneout_outputs = zoneout_factor_output 39 | self.is_training = is_training 40 | self.state_is_tuple = state_is_tuple 41 | 42 | @property 43 | def state_size(self): 44 | return self._cell.state_size 45 | 46 | @property 47 | def output_size(self): 48 | return self._cell.output_size 49 | 50 | def __call__(self, inputs, state, scope=None): 51 | '''Runs vanilla LSTM Cell and applies zoneout. 52 | ''' 53 | # Apply vanilla LSTM 54 | output, new_state = self._cell(inputs, state, scope) 55 | 56 | if self.state_is_tuple: 57 | (prev_c, prev_h) = state 58 | (new_c, new_h) = new_state 59 | else: 60 | num_proj = self._cell._num_units if self._cell._num_proj is None else self._cell._num_proj 61 | prev_c = tf.slice(state, [0, 0], [-1, self._cell._num_units]) 62 | prev_h = tf.slice(state, [0, self._cell._num_units], [-1, num_proj]) 63 | new_c = tf.slice(new_state, [0, 0], [-1, self._cell._num_units]) 64 | new_h = tf.slice(new_state, [0, self._cell._num_units], [-1, num_proj]) 65 | 66 | # Apply zoneout 67 | if self.is_training: 68 | # nn.dropout takes keep_prob (probability to keep activations) not drop_prob (probability to mask activations)! 69 | c = (1 - self._zoneout_cell) * tf.nn.dropout(new_c - prev_c, ( 70 | 1 - self._zoneout_cell)) + prev_c # tf.nn.dropout outputs the input element scaled up by 1 / keep_prob 71 | h = (1 - self._zoneout_outputs) * tf.nn.dropout(new_h - prev_h, (1 - self._zoneout_outputs)) + prev_h 72 | 73 | else: 74 | c = (1 - self._zoneout_cell) * new_c + self._zoneout_cell * prev_c 75 | h = (1 - self._zoneout_outputs) * new_h + self._zoneout_outputs * prev_h 76 | 77 | new_state = tf.nn.rnn_cell.LSTMStateTuple(c, h) if self.state_is_tuple else tf.concat(1, [c, h]) 78 | 79 | return output, new_state 80 | 81 | 82 | class DecoderPrenetWrapper(RNNCell): 83 | '''Runs RNN inputs through a prenet before sending them to the cell.''' 84 | 85 | def __init__(self, cell, is_training, layer_sizes): 86 | super(DecoderPrenetWrapper, self).__init__() 87 | self._cell = cell 88 | self._is_training = is_training 89 | self._layer_sizes = layer_sizes 90 | 91 | @property 92 | def state_size(self): 93 | return self._cell.state_size 94 | 95 | @property 96 | def output_size(self): 97 | return self._cell.output_size 98 | 99 | def call(self, inputs, state): 100 | prenet_out = prenet(inputs, self._is_training, self._layer_sizes, scope='decoder_prenet') 101 | return self._cell(prenet_out, state) 102 | 103 | def zero_state(self, batch_size, dtype): 104 | return self._cell.zero_state(batch_size, dtype) 105 | 106 | 107 | class ConcatOutputAndAttentionWrapper(RNNCell): 108 | '''Concatenates RNN cell output with the attention context vector. 109 | 110 | This is expected to wrap a cell wrapped with an AttentionWrapper constructed with 111 | attention_layer_size=None and output_attention=False. Such a cell's state will include an 112 | "attention" field that is the context vector. 113 | ''' 114 | 115 | def __init__(self, cell): 116 | super(ConcatOutputAndAttentionWrapper, self).__init__() 117 | self._cell = cell 118 | 119 | @property 120 | def state_size(self): 121 | return self._cell.state_size 122 | 123 | @property 124 | def output_size(self): 125 | return self._cell.output_size + self._cell.state_size.attention 126 | 127 | def call(self, inputs, state): 128 | output, res_state = self._cell(inputs, state) 129 | return tf.concat([output, res_state.attention], axis=-1), res_state 130 | 131 | def zero_state(self, batch_size, dtype): 132 | return self._cell.zero_state(batch_size, dtype) 133 | -------------------------------------------------------------------------------- /models/modules.py: -------------------------------------------------------------------------------- 1 | import tensorflow as tf 2 | from tensorflow.contrib.rnn import GRUCell 3 | 4 | 5 | def prenet(inputs, is_training, layer_sizes, scope=None): 6 | """ 7 | Args: 8 | inputs: input vector 9 | is_training: dropout option 10 | layer_sizes: iteration number 11 | 12 | Output: 13 | x: prenet 14 | """ 15 | x = inputs 16 | drop_rate = 0.5 if is_training else 0.0 # set dropout rate 0.5 (only training) 17 | with tf.variable_scope(scope or 'prenet'): 18 | for i, size in enumerate(layer_sizes): # iterate layer_sizes 19 | dense = tf.layers.dense(x, units=size, activation=tf.nn.relu, name='dense_%d' % (i + 1)) 20 | x = tf.layers.dropout(dense, rate=drop_rate, training=is_training, name='dropout_%d' % (i + 1)) 21 | return x 22 | 23 | 24 | def encoder_cbhg(inputs, input_lengths, is_training, depth): 25 | """ 26 | Args: 27 | inputs: input tensor 28 | input_lengths: length of input tensor 29 | is_training: Batch Normalization option in Conv1D 30 | depth: dimensionality option of Highway net and Bidirectical GRU's output 31 | 32 | Output: 33 | cbhg function 34 | """ 35 | input_channels = inputs.get_shape()[2] # 3rd element of inputs' shape 36 | return cbhg( 37 | inputs, 38 | input_lengths, 39 | is_training, 40 | scope='encoder_cbhg', 41 | K=16, 42 | projections=[128, input_channels], 43 | depth=depth) 44 | 45 | 46 | def post_cbhg(inputs, input_dim, is_training, depth): 47 | """ 48 | Args: 49 | inputs: input tensor 50 | input_dim: dimension of input tensor 51 | is_training: Batch Normalization option in Conv1D 52 | depth: dimensionality option of Highway net and Bidirectical GRU's output 53 | 54 | Output: 55 | cbhg function 56 | """ 57 | return cbhg( 58 | inputs, 59 | None, 60 | is_training, 61 | scope='post_cbhg', 62 | K=8, 63 | projections=[256, input_dim], 64 | depth=depth) 65 | 66 | 67 | def cbhg(inputs, input_lengths, is_training, scope, K, projections, depth): 68 | """ 69 | Args: 70 | inputs: input tensor 71 | input_lengths: length of input tensor 72 | is_training: Batch Normalization option in Conv1D 73 | scope: network or model name 74 | K: kernel size range 75 | projections: projection layers option 76 | depth: dimensionality option of Highway net and Bidirectical GRU's output 77 | The layers in the code are staked in the order in which they came out. 78 | """ 79 | with tf.variable_scope(scope): 80 | with tf.variable_scope('conv_bank'): 81 | 82 | conv_outputs = tf.concat( 83 | [conv1d(inputs, k, 128, tf.nn.relu, is_training, 'conv1d_%d' % k) for k in range(1, K + 1)], #1D Convolution layers using multiple types of Convolution Kernel. 84 | axis=-1 #Iterate K with increasing filter size by 1. 85 | )# Convolution bank: concatenate on the last axis to stack channels from all convolutions 86 | 87 | # Maxpooling: 88 | maxpool_output = tf.layers.max_pooling1d( 89 | conv_outputs, 90 | pool_size=2, 91 | strides=1, 92 | padding='same') #1D Maxpooling layer(strides=1, width=2) 93 | 94 | # Two projection layers: 95 | proj1_output = conv1d(maxpool_output, 3, projections[0], tf.nn.relu, is_training, 'proj_1')#1st Conv1D projections 96 | proj2_output = conv1d(proj1_output, 3, projections[1], None, is_training, 'proj_2')#2nd Conv1D projections 97 | 98 | # Residual connection: 99 | highway_input = proj2_output + inputs #Highway net input with residual connection 100 | 101 | half_depth = depth // 2 102 | assert half_depth * 2 == depth, 'encoder and postnet depths must be even.' #assert depth to be even 103 | 104 | # Handle dimensionality mismatch: 105 | if highway_input.shape[2] != half_depth: #check input's dimensionality and output's dimensionality are the same 106 | highway_input = tf.layers.dense(highway_input, half_depth) #change input's channel size to Highway net output's size 107 | 108 | # 4-layer HighwayNet: 109 | for i in range(4): 110 | highway_input = highwaynet(highway_input, 'highway_%d' % (i + 1), half_depth) #make 4 Highway net layers 111 | rnn_input = highway_input 112 | 113 | # Bidirectional GRU 114 | outputs, states = tf.nn.bidirectional_dynamic_rnn( #make Bidirectional GRU 115 | GRUCell(half_depth), 116 | GRUCell(half_depth), 117 | rnn_input, 118 | sequence_length=input_lengths, 119 | dtype=tf.float32) 120 | return tf.concat(outputs, axis=2) # Concat forward sequence and backward sequence 121 | 122 | def highwaynet(inputs, scope, depth): 123 | with tf.variable_scope(scope): 124 | H = tf.layers.dense( 125 | inputs, 126 | units=depth, 127 | activation=tf.nn.relu, 128 | name='H') 129 | T = tf.layers.dense( 130 | inputs, 131 | units=depth, 132 | activation=tf.nn.sigmoid, 133 | name='T', 134 | bias_initializer=tf.constant_initializer(-1.0)) 135 | return H * T + inputs * (1.0 - T) 136 | 137 | 138 | def conv1d(inputs, kernel_size, channels, activation, is_training, scope): 139 | """ 140 | Args: 141 | inputs: input tensor 142 | kernel_size: length of the 1D convolution window 143 | channels: dimensionality of the output space 144 | activation: Activation function (None means linear activation) 145 | is_training: Batch Normalization option in Conv1D 146 | scope: namespace 147 | 148 | Output: 149 | output tensor 150 | """ 151 | with tf.variable_scope(scope): 152 | conv1d_output = tf.layers.conv1d( # creates a convolution kernel 153 | inputs, 154 | filters=channels, 155 | kernel_size=kernel_size, 156 | activation=activation, 157 | padding='same') # return output tensor 158 | return tf.layers.batch_normalization(conv1d_output, training=is_training) 159 | -------------------------------------------------------------------------------- /datasets/datafeeder.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import os 3 | import random 4 | import tensorflow as tf 5 | import threading 6 | import time 7 | import traceback 8 | from text import text_to_sequence 9 | from util.infolog import log 10 | 11 | _batches_per_group = 32 12 | # _p_cmudict = 0.5 13 | _pad = 0 14 | 15 | 16 | class DataFeeder(threading.Thread): 17 | '''Feeds batches of data into a queue on a background thread.''' 18 | 19 | def __init__(self, coordinator, metadata_filename, hparams): 20 | super(DataFeeder, self).__init__() 21 | self._coord = coordinator 22 | self._hparams = hparams 23 | self._cleaner_names = [x.strip() for x in hparams.cleaners.split(',')] 24 | self._offset = 0 25 | 26 | # Load metadata: 27 | self._datadir = os.path.dirname(metadata_filename) 28 | with open(metadata_filename, encoding='utf-8') as f: 29 | self._metadata = [line.strip().split('|') for line in f] 30 | hours = sum((int(x[2]) for x in self._metadata)) * hparams.frame_shift_ms / (3600 * 1000) 31 | log('Loaded metadata for %d examples (%.2f hours)' % (len(self._metadata), hours)) 32 | 33 | # Create placeholders for inputs and targets. Don't specify batch size because we want to 34 | # be able to feed different sized batches at eval time. 35 | self._placeholders = [ 36 | tf.placeholder(tf.int32, [None, None], 'inputs'), 37 | tf.placeholder(tf.int32, [None], 'input_lengths'), 38 | tf.placeholder(tf.float32, [None, None, hparams.num_mels], 'mel_targets'), 39 | tf.placeholder(tf.float32, [None, None, hparams.num_freq], 'linear_targets') 40 | ] 41 | 42 | # Create queue for buffering data: 43 | queue = tf.FIFOQueue(8, [tf.int32, tf.int32, tf.float32, tf.float32], name='input_queue') 44 | self._enqueue_op = queue.enqueue(self._placeholders) 45 | self.inputs, self.input_lengths, self.mel_targets, self.linear_targets = queue.dequeue() 46 | self.inputs.set_shape(self._placeholders[0].shape) 47 | self.input_lengths.set_shape(self._placeholders[1].shape) 48 | self.mel_targets.set_shape(self._placeholders[2].shape) 49 | self.linear_targets.set_shape(self._placeholders[3].shape) 50 | self._cmudict = None 51 | 52 | # # Load CMUDict: If enabled, this will randomly substitute some words in the training data with 53 | # # their ARPABet equivalents, which will allow you to also pass ARPABet to the model for 54 | # # synthesis (useful for proper nouns, etc.) 55 | # if hparams.use_cmudict: 56 | # cmudict_path = os.path.join(self._datadir, 'cmudict-0.7b') 57 | # if not os.path.isfile(cmudict_path): 58 | # raise Exception('If use_cmudict=True, you must download ' + 59 | # 'http://svn.code.sf.net/p/cmusphinx/code/trunk/cmudict/cmudict-0.7b to %s' % cmudict_path) 60 | # self._cmudict = cmudict.CMUDict(cmudict_path, keep_ambiguous=False) 61 | # log('Loaded CMUDict with %d unambiguous entries' % len(self._cmudict)) 62 | # else: 63 | # self._cmudict = None 64 | 65 | def start_in_session(self, session): 66 | self._session = session 67 | self.start() 68 | 69 | def run(self): 70 | try: 71 | while not self._coord.should_stop(): 72 | self._enqueue_next_group() 73 | except Exception as e: 74 | traceback.print_exc() 75 | self._coord.request_stop(e) 76 | 77 | def _enqueue_next_group(self): 78 | start = time.time() 79 | 80 | # Read a group of examples: 81 | n = self._hparams.batch_size 82 | r = self._hparams.outputs_per_step 83 | examples = [self._get_next_example() for i in range(n * _batches_per_group)] 84 | 85 | # Bucket examples based on similar output sequence length for efficiency: 86 | examples.sort(key=lambda x: x[-1]) 87 | batches = [examples[i:i + n] for i in range(0, len(examples), n)] 88 | random.shuffle(batches) 89 | 90 | log('Generated %d batches of size %d in %.03f sec' % (len(batches), n, time.time() - start)) 91 | for batch in batches: 92 | feed_dict = dict(zip(self._placeholders, _prepare_batch(batch, r))) 93 | self._session.run(self._enqueue_op, feed_dict=feed_dict) 94 | 95 | def _get_next_example(self): 96 | '''Loads a single example (input, mel_target, linear_target, cost) from disk''' 97 | if self._offset >= len(self._metadata): 98 | self._offset = 0 99 | random.shuffle(self._metadata) 100 | meta = self._metadata[self._offset] 101 | self._offset += 1 102 | 103 | text = meta[3] 104 | # if self._cmudict and random.random() < _p_cmudict: 105 | # text = ' '.join([self._maybe_get_arpabet(word) for word in text.split(' ')]) 106 | 107 | input_data = np.asarray(text_to_sequence(text, self._cleaner_names), dtype=np.int32) 108 | linear_target = np.load(os.path.join(self._datadir, meta[0])) 109 | mel_target = np.load(os.path.join(self._datadir, meta[1])) 110 | return (input_data, mel_target, linear_target, len(linear_target)) 111 | 112 | def _maybe_get_arpabet(self, word): 113 | arpabet = self._cmudict.lookup(word) 114 | return '{%s}' % arpabet[0] if arpabet is not None and random.random() < 0.5 else word 115 | 116 | 117 | def _prepare_batch(batch, outputs_per_step): 118 | random.shuffle(batch) 119 | inputs = _prepare_inputs([x[0] for x in batch]) 120 | input_lengths = np.asarray([len(x[0]) for x in batch], dtype=np.int32) 121 | mel_targets = _prepare_targets([x[1] for x in batch], outputs_per_step) 122 | linear_targets = _prepare_targets([x[2] for x in batch], outputs_per_step) 123 | return (inputs, input_lengths, mel_targets, linear_targets) 124 | 125 | 126 | def _prepare_inputs(inputs): 127 | max_len = max((len(x) for x in inputs)) 128 | return np.stack([_pad_input(x, max_len) for x in inputs]) 129 | 130 | 131 | def _prepare_targets(targets, alignment): 132 | max_len = max((len(t) for t in targets)) + 1 133 | return np.stack([_pad_target(t, _round_up(max_len, alignment)) for t in targets]) 134 | 135 | 136 | def _pad_input(x, length): 137 | return np.pad(x, (0, length - x.shape[0]), mode='constant', constant_values=_pad) 138 | 139 | 140 | def _pad_target(t, length): 141 | return np.pad(t, [(0, length - t.shape[0]), (0, 0)], mode='constant', constant_values=_pad) 142 | 143 | 144 | def _round_up(x, multiple): 145 | remainder = x % multiple 146 | return x if remainder == 0 else x + multiple - remainder 147 | -------------------------------------------------------------------------------- /train.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | from datetime import datetime 3 | import math 4 | import os 5 | import subprocess 6 | import time 7 | import tensorflow as tf 8 | import traceback 9 | import sys 10 | from datasets.datafeeder import DataFeeder 11 | from hparams import hparams, hparams_debug_string 12 | from models import create_model 13 | from text import sequence_to_text 14 | from util import audio, infolog, plot, ValueWindow 15 | 16 | log = infolog.log 17 | 18 | 19 | def get_git_commit(): 20 | subprocess.check_output(['git', 'diff-index', '--quiet', 'HEAD']) # Verify client is clean 21 | commit = subprocess.check_output(['git', 'rev-parse', 'HEAD']).decode().strip()[:10] 22 | log('Git commit: %s' % commit) 23 | return commit 24 | 25 | 26 | def add_stats(model): 27 | with tf.variable_scope('stats') as scope: 28 | tf.summary.histogram('linear_outputs', model.linear_outputs) 29 | tf.summary.histogram('linear_targets', model.linear_targets) 30 | tf.summary.histogram('mel_outputs', model.mel_outputs) 31 | tf.summary.histogram('mel_targets', model.mel_targets) 32 | tf.summary.scalar('loss_mel', model.mel_loss) 33 | tf.summary.scalar('loss_linear', model.linear_loss) 34 | tf.summary.scalar('learning_rate', model.learning_rate) 35 | tf.summary.scalar('loss', model.loss) 36 | gradient_norms = [tf.norm(grad) for grad in model.gradients] 37 | tf.summary.histogram('gradient_norm', gradient_norms) 38 | tf.summary.scalar('max_gradient_norm', tf.reduce_max(gradient_norms)) 39 | return tf.summary.merge_all() 40 | 41 | 42 | def time_string(): 43 | return datetime.now().strftime('%Y-%m-%d %H:%M') 44 | 45 | 46 | def train(log_dir, args): 47 | commit = get_git_commit() if args.git else 'None' 48 | checkpoint_path = os.path.join(log_dir, 'model.ckpt') 49 | input_path = os.path.join(args.base_dir, args.input) 50 | log('Checkpoint path: %s' % checkpoint_path) 51 | log('Loading training data from: %s' % input_path) 52 | log('Using model: %s' % args.model) 53 | log(hparams_debug_string()) 54 | 55 | # Set up DataFeeder: 56 | coord = tf.train.Coordinator() 57 | with tf.variable_scope('datafeeder') as scope: 58 | feeder = DataFeeder(coord, input_path, hparams) 59 | 60 | # Set up model: 61 | global_step = tf.Variable(0, name='global_step', trainable=False) 62 | with tf.variable_scope('model') as scope: 63 | model = create_model(args.model, hparams) 64 | model.initialize(feeder.inputs, feeder.input_lengths, feeder.mel_targets, feeder.linear_targets) 65 | model.add_loss() 66 | model.add_optimizer(global_step) 67 | stats = add_stats(model) 68 | 69 | # Bookkeeping: 70 | step = 0 71 | time_window = ValueWindow(100) 72 | loss_window = ValueWindow(100) 73 | saver = tf.train.Saver(max_to_keep=5, keep_checkpoint_every_n_hours=2) 74 | 75 | # Train! 76 | with tf.Session() as sess: 77 | try: 78 | summary_writer = tf.summary.FileWriter(log_dir, sess.graph) 79 | sess.run(tf.global_variables_initializer()) 80 | 81 | if args.restore_step: 82 | # Restore from a checkpoint if the user requested it. 83 | restore_path = '%s-%d' % (checkpoint_path, args.restore_step) 84 | saver.restore(sess, restore_path) 85 | log('Resuming from checkpoint: %s at commit: %s' % (restore_path, commit), slack=True) 86 | else: 87 | log('Starting new training run at commit: %s' % commit, slack=True) 88 | 89 | feeder.start_in_session(sess) 90 | 91 | while not coord.should_stop(): 92 | start_time = time.time() 93 | step, loss, opt = sess.run([global_step, model.loss, model.optimize]) 94 | time_window.append(time.time() - start_time) 95 | loss_window.append(loss) 96 | message = 'Step %-7d [%.03f sec/step, loss=%.05f, avg_loss=%.05f]' % ( 97 | step, time_window.average, loss, loss_window.average) 98 | log(message, slack=(step % args.checkpoint_interval == 0)) 99 | 100 | if loss > 100 or math.isnan(loss): 101 | log('Loss exploded to %.05f at step %d!' % (loss, step), slack=True) 102 | raise Exception('Loss Exploded') 103 | 104 | if step % args.summary_interval == 0: 105 | log('Writing summary at step: %d' % step) 106 | summary_writer.add_summary(sess.run(stats), step) 107 | 108 | if step % args.checkpoint_interval == 0: 109 | log('Saving checkpoint to: %s-%d' % (checkpoint_path, step)) 110 | saver.save(sess, checkpoint_path, global_step=step) 111 | log('Saving audio and alignment...') 112 | input_seq, spectrogram, alignment = sess.run([ 113 | model.inputs[0], model.linear_outputs[0], model.alignments[0]]) 114 | waveform = audio.inv_spectrogram(spectrogram.T) 115 | audio.save_wav(waveform, os.path.join(log_dir, 'step-%d-audio.wav' % step)) 116 | plot.plot_alignment(alignment, os.path.join(log_dir, 'step-%d-align.png' % step), 117 | info='%s, %s, %s, step=%d, loss=%.5f' % ( 118 | args.model, commit, time_string(), step, loss)) 119 | log('Input: %s' % sequence_to_text(input_seq)) 120 | 121 | except Exception as e: 122 | log('Exiting due to exception: %s' % e, slack=True) 123 | traceback.print_exc() 124 | coord.request_stop(e) 125 | 126 | 127 | def main(): 128 | 129 | parser = argparse.ArgumentParser() 130 | parser.add_argument('--base_dir', default=os.path.expanduser('~/jeewoo/Tacotron/')) 131 | parser.add_argument('--input', default='training/train.txt') 132 | parser.add_argument('--model', default='tacotron') 133 | parser.add_argument('--name', help='Name of the run. Used for logging. Defaults to model name.') 134 | parser.add_argument('--hparams', default='', 135 | help='Hyperparameter overrides as a comma-separated list of name=value pairs') 136 | parser.add_argument('--restore_step', type=int, help='Global step to restore from checkpoint.') 137 | parser.add_argument('--summary_interval', type=int, default=100, 138 | help='Steps between running summary ops.') 139 | parser.add_argument('--checkpoint_interval', type=int, default=1000, 140 | help='Steps between writing checkpoints.') 141 | parser.add_argument('--slack_url', help='Slack webhook URL to get periodic reports.') 142 | parser.add_argument('--tf_log_level', type=int, default=1, help='Tensorflow C++ log level.') 143 | parser.add_argument('--git', action='store_true', help='If set, verify that the client is clean.') 144 | parser.add_argument('--gpu', default='0') 145 | args = parser.parse_args() 146 | os.environ['TF_CPP_MIN_LOG_LEVEL'] = str(args.tf_log_level) 147 | 148 | 149 | os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" 150 | os.environ["CUDA_VISIBLE_DEVICES"] = args.gpu 151 | run_name = args.name or args.model 152 | log_dir = os.path.join(args.base_dir, 'logs-lstm--%s' % run_name) 153 | os.makedirs(log_dir, exist_ok=True) 154 | infolog.init(os.path.join(log_dir, 'train.log'), run_name, args.slack_url) 155 | hparams.parse(args.hparams) 156 | train(log_dir, args) 157 | 158 | 159 | if __name__ == '__main__': 160 | main() 161 | -------------------------------------------------------------------------------- /models/tacotron.py: -------------------------------------------------------------------------------- 1 | import tensorflow as tf 2 | from tensorflow.contrib.rnn import GRUCell, MultiRNNCell, OutputProjectionWrapper, ResidualWrapper, LSTMCell 3 | from tensorflow.contrib.seq2seq import BasicDecoder, BahdanauAttention, AttentionWrapper 4 | from text.symbols import symbols 5 | from util.infolog import log 6 | from .helpers import TacoTestHelper, TacoTrainingHelper 7 | from .modules import encoder_cbhg, post_cbhg, prenet 8 | from .rnn_wrappers import DecoderPrenetWrapper, ConcatOutputAndAttentionWrapper, ZoneoutLSTMCell 9 | 10 | 11 | class Tacotron(): 12 | def __init__(self, hparams): 13 | self._hparams = hparams 14 | 15 | def initialize(self, inputs, input_lengths, mel_targets=None, linear_targets=None): 16 | 17 | with tf.variable_scope('inference') as scope: 18 | is_training = linear_targets is not None 19 | batch_size = tf.shape(inputs)[0] 20 | hp = self._hparams 21 | 22 | # Embeddings 23 | embedding_table = tf.get_variable( 24 | 'embedding', [len(symbols), hp.embed_depth], dtype=tf.float32, 25 | initializer=tf.truncated_normal_initializer(stddev=0.5)) 26 | embedded_inputs = tf.nn.embedding_lookup(embedding_table, inputs) # [N, T_in, embed_depth=256] 27 | 28 | # Encoder 29 | prenet_outputs = prenet(embedded_inputs, is_training, hp.prenet_depths) # [N, T_in, prenet_depths[-1]=128] 30 | encoder_outputs = encoder_cbhg(prenet_outputs, input_lengths, is_training, # [N, T_in, encoder_depth=256] 31 | hp.encoder_depth) 32 | 33 | #GRU Mechanism 34 | if hp.RNN_type == 'GRU': 35 | RNN_mechanism = GRUCell(hp.decoder_depth) 36 | elif hp.RNN_type == 'LSTM_zoneout': 37 | RNN_mechanism =ZoneoutLSTMCell(hp.decoder_depth, is_training, zoneout_factor_cell=hp.tacotron_zoneout_rate, 38 | zoneout_factor_output=hp.tacotron_zoneout_rate) 39 | elif hp.RNN_type == 'LSTM': 40 | RNN_mechanism = LSTMCell(hp.decoder_depth) 41 | 42 | # Attention 43 | attention_cell = AttentionWrapper( 44 | GRUCell(hp.decoder_depth), 45 | BahdanauAttention(hp.attention_depth, encoder_outputs), 46 | alignment_history=True, 47 | output_attention=False) # [N, T_in, attention_depth=256] 48 | 49 | # Apply prenet before concatenation in AttentionWrapper. 50 | attention_cell = DecoderPrenetWrapper(attention_cell, is_training, hp.prenet_depths) 51 | 52 | # Concatenate attention context vector and RNN cell output into a 2*attention_depth=512D vector. 53 | concat_cell = ConcatOutputAndAttentionWrapper(attention_cell) # [N, T_in, 2*attention_depth=512] 54 | 55 | # Decoder (layers specified bottom to top): 56 | decoder_cell = MultiRNNCell([ 57 | OutputProjectionWrapper(concat_cell, hp.decoder_depth), 58 | ResidualWrapper(RNN_mechanism), 59 | ResidualWrapper(RNN_mechanism), 60 | 61 | ], state_is_tuple=True) # [N, T_in, decoder_depth=256] 62 | 63 | # Project onto r mel spectrograms (predict r outputs at each RNN step): 64 | output_cell = OutputProjectionWrapper(decoder_cell, hp.num_mels * hp.outputs_per_step) 65 | decoder_init_state = output_cell.zero_state(batch_size=batch_size, dtype=tf.float32) 66 | 67 | if is_training: 68 | helper = TacoTrainingHelper(inputs, mel_targets, hp.num_mels, hp.outputs_per_step) 69 | else: 70 | helper = TacoTestHelper(batch_size, hp.num_mels, hp.outputs_per_step) 71 | 72 | (decoder_outputs, _), final_decoder_state, _ = tf.contrib.seq2seq.dynamic_decode( 73 | BasicDecoder(output_cell, helper, decoder_init_state), 74 | maximum_iterations=hp.max_iters) # [N, T_out/r, M*r] 75 | 76 | # Reshape outputs to be one output per entry 77 | mel_outputs = tf.reshape(decoder_outputs, [batch_size, -1, hp.num_mels]) # [N, T_out, M] 78 | 79 | # Add post-processing CBHG: 80 | post_outputs = post_cbhg(mel_outputs, hp.num_mels, is_training, # [N, T_out, postnet_depth=256] 81 | hp.postnet_depth) 82 | linear_outputs = tf.layers.dense(post_outputs, hp.num_freq) # [N, T_out, F] 83 | 84 | # Grab alignments from the final decoder state: 85 | alignments = tf.transpose(final_decoder_state[0].alignment_history.stack(), [1, 2, 0]) 86 | 87 | self.inputs = inputs 88 | self.input_lengths = input_lengths 89 | self.mel_outputs = mel_outputs 90 | self.linear_outputs = linear_outputs 91 | self.alignments = alignments 92 | self.mel_targets = mel_targets 93 | self.linear_targets = linear_targets 94 | 95 | log('Initialized Tacotron model. Dimensions: ') 96 | log(' embedding: %d' % embedded_inputs.shape[-1]) 97 | log(' prenet out: %d' % prenet_outputs.shape[-1]) 98 | log(' encoder out: %d' % encoder_outputs.shape[-1]) 99 | log(' attention out: %d' % attention_cell.output_size) 100 | log(' concat attn & out: %d' % concat_cell.output_size) 101 | log(' decoder cell out: %d' % decoder_cell.output_size) 102 | log(' decoder out (%d frames): %d' % (hp.outputs_per_step, decoder_outputs.shape[-1])) 103 | log(' decoder out (1 frame): %d' % mel_outputs.shape[-1]) 104 | log(' postnet out: %d' % post_outputs.shape[-1]) 105 | log(' linear out: %d' % linear_outputs.shape[-1]) 106 | 107 | def add_loss(self): 108 | '''Adds loss to the model. Sets "loss" field. initialize must have been called.''' 109 | with tf.variable_scope('loss') as scope: 110 | hp = self._hparams 111 | self.mel_loss = tf.reduce_mean(tf.abs(self.mel_targets - self.mel_outputs)) 112 | l1 = tf.abs(self.linear_targets - self.linear_outputs) 113 | # Prioritize loss for frequencies under 3000 Hz. 114 | n_priority_freq = int(3000 / (hp.sample_rate * 0.5) * hp.num_freq) 115 | self.linear_loss = 0.5 * tf.reduce_mean(l1) + 0.5 * tf.reduce_mean(l1[:, :, 0:n_priority_freq]) 116 | self.loss = self.mel_loss + self.linear_loss 117 | 118 | def add_optimizer(self, global_step): 119 | '''Adds optimizer. Sets "gradients" and "optimize" fields. add_loss must have been called. 120 | 121 | Args: 122 | global_step: int32 scalar Tensor representing current global step in training 123 | ''' 124 | with tf.variable_scope('optimizer') as scope: 125 | hp = self._hparams 126 | if hp.decay_learning_rate: 127 | self.learning_rate = _learning_rate_decay(hp.initial_learning_rate, global_step) 128 | else: 129 | self.learning_rate = tf.convert_to_tensor(hp.initial_learning_rate) 130 | optimizer = tf.train.AdamOptimizer(self.learning_rate, hp.adam_beta1, hp.adam_beta2) 131 | gradients, variables = zip(*optimizer.compute_gradients(self.loss)) 132 | self.gradients = gradients 133 | clipped_gradients, _ = tf.clip_by_global_norm(gradients, 1.0) 134 | 135 | # Add dependency on UPDATE_OPS; otherwise batchnorm won't work correctly. See: 136 | # https://github.com/tensorflow/tensorflow/issues/1122 137 | with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS)): 138 | self.optimize = optimizer.apply_gradients(zip(clipped_gradients, variables), 139 | global_step=global_step) 140 | 141 | 142 | def _learning_rate_decay(init_lr, global_step): 143 | # Noam scheme from tensor2tensor: 144 | warmup_steps = 4000.0 145 | step = tf.cast(global_step + 1, dtype=tf.float32) 146 | return init_lr * warmup_steps ** 0.5 * tf.minimum(step * warmup_steps ** -1.5, step ** -0.5) 147 | -------------------------------------------------------------------------------- /text/korean.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | # Code based on carpedm20 3 | 4 | import re 5 | import os 6 | import ast 7 | import json 8 | from jamo import hangul_to_jamo, h2j, j2h 9 | 10 | from .kor_dic import english_dictionary, etc_dictionary 11 | 12 | PAD = '_' 13 | EOS = '~' 14 | PUNC = '!\'(),-.:;?' 15 | SPACE = ' ' 16 | 17 | JAMO_LEADS = "".join([chr(_) for _ in range(0x1100, 0x1113)]) 18 | JAMO_VOWELS = "".join([chr(_) for _ in range(0x1161, 0x1176)]) 19 | JAMO_TAILS = "".join([chr(_) for _ in range(0x11A8, 0x11C3)]) 20 | 21 | VALID_CHARS = JAMO_LEADS + JAMO_VOWELS + JAMO_TAILS + PUNC + SPACE 22 | ALL_SYMBOLS = PAD + EOS + VALID_CHARS 23 | 24 | char_to_id = {c: i for i, c in enumerate(ALL_SYMBOLS)} 25 | id_to_char = {i: c for i, c in enumerate(ALL_SYMBOLS)} 26 | 27 | quote_checker = """([`"'"“‘])(.+?)([`"'"”’])""" 28 | 29 | 30 | def is_lead(char): 31 | return char in JAMO_LEADS 32 | 33 | 34 | def is_vowel(char): 35 | return char in JAMO_VOWELS 36 | 37 | 38 | def is_tail(char): 39 | return char in JAMO_TAILS 40 | 41 | 42 | def get_mode(char): 43 | if is_lead(char): 44 | return 0 45 | elif is_vowel(char): 46 | return 1 47 | elif is_tail(char): 48 | return 2 49 | else: 50 | return -1 51 | 52 | 53 | def _get_text_from_candidates(candidates): 54 | if len(candidates) == 0: 55 | return "" 56 | elif len(candidates) == 1: 57 | return _jamo_char_to_hcj(candidates[0]) 58 | else: 59 | return j2h(**dict(zip(["lead", "vowel", "tail"], candidates))) 60 | 61 | 62 | def jamo_to_korean(text): 63 | text = h2j(text) 64 | 65 | idx = 0 66 | new_text = "" 67 | candidates = [] 68 | 69 | while True: 70 | if idx >= len(text): 71 | new_text += _get_text_from_candidates(candidates) 72 | break 73 | 74 | char = text[idx] 75 | mode = get_mode(char) 76 | 77 | if mode == 0: 78 | new_text += _get_text_from_candidates(candidates) 79 | candidates = [char] 80 | elif mode == -1: 81 | new_text += _get_text_from_candidates(candidates) 82 | new_text += char 83 | candidates = [] 84 | else: 85 | candidates.append(char) 86 | 87 | idx += 1 88 | return new_text 89 | 90 | 91 | num_to_kor = { 92 | '0': '영', 93 | '1': '일', 94 | '2': '이', 95 | '3': '삼', 96 | '4': '사', 97 | '5': '오', 98 | '6': '육', 99 | '7': '칠', 100 | '8': '팔', 101 | '9': '구', 102 | } 103 | 104 | unit_to_kor1 = { 105 | '%': '퍼센트', 106 | 'cm': '센치미터', 107 | 'mm': '밀리미터', 108 | 'km': '킬로미터', 109 | 'kg': '킬로그람', 110 | } 111 | unit_to_kor2 = { 112 | 'm': '미터', 113 | } 114 | 115 | upper_to_kor = { 116 | 'A': '에이', 117 | 'B': '비', 118 | 'C': '씨', 119 | 'D': '디', 120 | 'E': '이', 121 | 'F': '에프', 122 | 'G': '지', 123 | 'H': '에이치', 124 | 'I': '아이', 125 | 'J': '제이', 126 | 'K': '케이', 127 | 'L': '엘', 128 | 'M': '엠', 129 | 'N': '엔', 130 | 'O': '오', 131 | 'P': '피', 132 | 'Q': '큐', 133 | 'R': '알', 134 | 'S': '에스', 135 | 'T': '티', 136 | 'U': '유', 137 | 'V': '브이', 138 | 'W': '더블유', 139 | 'X': '엑스', 140 | 'Y': '와이', 141 | 'Z': '지', 142 | } 143 | 144 | 145 | def compare_sentence_with_jamo(text1, text2): 146 | return h2j(text1) != h2j(text2) 147 | 148 | 149 | def tokenize(text, as_id=False): 150 | # jamo package에 있는 hangul_to_jamo를 이용하여 한글 string을 초성/중성/종성으로 나눈다. 151 | 152 | text = normalize(text) 153 | tokens = list(hangul_to_jamo(text)) # '존경하는' --> ['ᄌ', 'ᅩ', 'ᆫ', 'ᄀ', 'ᅧ', 'ᆼ', 'ᄒ', 'ᅡ', 'ᄂ', 'ᅳ', 'ᆫ', '~'] 154 | 155 | if as_id: 156 | return [char_to_id[token] for token in tokens] + [char_to_id[EOS]] 157 | else: 158 | return [token for token in tokens] + [EOS] 159 | 160 | 161 | def tokenizer_fn(iterator): 162 | return (token for x in iterator for token in tokenize(x, as_id=False)) 163 | 164 | 165 | def normalize(text): 166 | text = text.strip() 167 | 168 | text = re.sub('\(\d+일\)', '', text) 169 | text = re.sub('\([⺀-⺙⺛-⻳⼀-⿕々〇〡-〩〸-〺〻㐀-䶵一-鿃豈-鶴侮-頻並-龎]+\)', '', text) 170 | 171 | text = normalize_with_dictionary(text, etc_dictionary) 172 | text = normalize_english(text) 173 | text = re.sub('[a-zA-Z]+', normalize_upper, text) 174 | 175 | text = normalize_quote(text) 176 | text = normalize_number(text) 177 | 178 | return text 179 | 180 | 181 | def normalize_with_dictionary(text, dic): 182 | if any(key in text for key in dic.keys()): 183 | pattern = re.compile('|'.join(re.escape(key) for key in dic.keys())) 184 | return pattern.sub(lambda x: dic[x.group()], text) 185 | else: 186 | return text 187 | 188 | 189 | def normalize_english(text): 190 | def fn(m): 191 | word = m.group() 192 | if word in english_dictionary: 193 | return english_dictionary.get(word) 194 | else: 195 | return word 196 | 197 | text = re.sub("([A-Za-z]+)", fn, text) 198 | return text 199 | 200 | 201 | def normalize_upper(text): 202 | text = text.group(0) 203 | 204 | if all([char.isupper() for char in text]): 205 | return "".join(upper_to_kor[char] for char in text) 206 | else: 207 | return text 208 | 209 | 210 | def normalize_quote(text): 211 | def fn(found_text): 212 | from nltk import sent_tokenize # NLTK doesn't along with multiprocessing 213 | 214 | found_text = found_text.group() 215 | unquoted_text = found_text[1:-1] 216 | 217 | sentences = sent_tokenize(unquoted_text) 218 | return " ".join(["'{}'".format(sent) for sent in sentences]) 219 | 220 | return re.sub(quote_checker, fn, text) 221 | 222 | 223 | number_checker = "([+-]?\d[\d,]*)[\.]?\d*" 224 | count_checker = "(시|명|가지|살|마리|포기|송이|수|톨|통|점|개|벌|척|채|다발|그루|자루|줄|켤레|그릇|잔|마디|상자|사람|곡|병|판)" 225 | 226 | 227 | def normalize_number(text): 228 | text = normalize_with_dictionary(text, unit_to_kor1) 229 | text = normalize_with_dictionary(text, unit_to_kor2) 230 | # text = re.sub(number_checker + count_checker, 231 | # lambda x: number_to_korean(x, True), text) 232 | # text = re.sub(number_checker, 233 | # lambda x: number_to_korean(x, False), text) 234 | return text 235 | 236 | 237 | num_to_kor1 = [""] + list("일이삼사오육칠팔구") 238 | num_to_kor2 = [""] + list("만억조경해") 239 | num_to_kor3 = [""] + list("십백천") 240 | 241 | # count_to_kor1 = [""] + ["하나","둘","셋","넷","다섯","여섯","일곱","여덟","아홉"] 242 | count_to_kor1 = [""] + ["한", "두", "세", "네", "다섯", "여섯", "일곱", "여덟", "아홉"] 243 | 244 | count_tenth_dict = { 245 | "십": "열", 246 | "두십": "스물", 247 | "세십": "서른", 248 | "네십": "마흔", 249 | "다섯십": "쉰", 250 | "여섯십": "예순", 251 | "일곱십": "일흔", 252 | "여덟십": "여든", 253 | "아홉십": "아흔", 254 | } 255 | 256 | 257 | # def number_to_korean(num_str, is_count=False): 258 | # if is_count: 259 | # num_str, unit_str = num_str.group(1), num_str.group(2) 260 | # else: 261 | # num_str, unit_str = num_str.group(), "" 262 | # 263 | # num_str = num_str.replace(',', '') 264 | # num = ast.literal_eval(num_str) 265 | # 266 | # if num == 0: 267 | # return "영" 268 | # 269 | # check_float = num_str.split('.') 270 | # if len(check_float) == 2: 271 | # digit_str, float_str = check_float 272 | # elif len(check_float) >= 3: 273 | # raise Exception(" [!] Wrong number format") 274 | # else: 275 | # digit_str, float_str = check_float[0], None 276 | # 277 | # if is_count and float_str is not None: 278 | # raise Exception(" [!] `is_count` and float number does not fit each other") 279 | # 280 | # digit = int(digit_str) 281 | # 282 | # if digit_str.startswith("-"): 283 | # digit, digit_str = abs(digit), str(abs(digit)) 284 | # 285 | # kor = "" 286 | # size = len(str(digit)) 287 | # tmp = [] 288 | # 289 | # for i, v in enumerate(digit_str, start=1): 290 | # v = int(v) 291 | # 292 | # if v != 0: 293 | # if is_count: 294 | # tmp += count_to_kor1[v] 295 | # else: 296 | # tmp += num_to_kor1[v] 297 | # 298 | # tmp += num_to_kor3[(size - i) % 4] 299 | # 300 | # if (size - i) % 4 == 0 and len(tmp) != 0: 301 | # kor += "".join(tmp) 302 | # tmp = [] 303 | # kor += num_to_kor2[int((size - i) / 4)] 304 | # 305 | # if is_count: 306 | # if kor.startswith("한") and len(kor) > 1: 307 | # kor = kor[1:] 308 | # 309 | # if any(word in kor for word in count_tenth_dict): 310 | # kor = re.sub( 311 | # '|'.join(count_tenth_dict.keys()), 312 | # lambda x: count_tenth_dict[x.group()], kor) 313 | # 314 | # if not is_count and kor.startswith("일") and len(kor) > 1: 315 | # kor = kor[1:] 316 | # 317 | # if float_str is not None: 318 | # kor += "쩜 " 319 | # kor += re.sub('\d', lambda x: num_to_kor[x.group()], float_str) 320 | # 321 | # if num_str.startswith("+"): 322 | # kor = "플러스 " + kor 323 | # elif num_str.startswith("-"): 324 | # kor = "마이너스 " + kor 325 | # 326 | # return kor + unit_str 327 | 328 | 329 | if __name__ == "__main__": 330 | def test_normalize(text): 331 | print(text) 332 | print(normalize(text)) 333 | print("=" * 30) 334 | 335 | 336 | test_normalize("JTBC는 JTBCs를 DY는 A가 Absolute") 337 | test_normalize("오늘(13일) 3,600마리 강아지가") 338 | test_normalize("60.3%") 339 | test_normalize('"저돌"(猪突) 입니다.') 340 | test_normalize('비대위원장이 지난 1월 이런 말을 했습니다. “난 그냥 산돼지처럼 돌파하는 스타일이다”') 341 | test_normalize("지금은 -12.35%였고 종류는 5가지와 19가지, 그리고 55가지였다") 342 | test_normalize("JTBC는 TH와 K 양이 2017년 9월 12일 오후 12시에 24살이 된다") 343 | print(list(hangul_to_jamo(list(hangul_to_jamo('비대위원장이 지난 1월 이런 말을 했습니다? “난 그냥 산돼지처럼 돌파하는 스타일이다”'))))) 344 | -------------------------------------------------------------------------------- /bible/metadata.csv: -------------------------------------------------------------------------------- 1 | fekudo_vj3Q.0000.wav|데살로니가전서 3장 2 | fekudo_vj3Q.0001.wav|이러므로 우리가 참다 못하여 우리만 아덴에 머물기를 좋게 생각하고 3 | fekudo_vj3Q.0002.wav|우리 형제 곧 그리스도의 복음을 전하는 하나님의 일꾼인 디모데를 보내노니 4 | fekudo_vj3Q.0003.wav|이는 너희를 굳건하게 하고 너희 믿음에 대하여 위로함으로 5 | fekudo_vj3Q.0004.wav|아무도 이 여러 환난 중에 흔들리지 않게 하려 함이라 6 | fekudo_vj3Q.0005.wav|우리가 이것을 위하여 세움 받은 줄을 너희가 친히 알리라 7 | fekudo_vj3Q.0006.wav|우리가 너희와 함께 있을 때에 장차 받을 환난을 너희에게 미리 말하였는데 8 | fekudo_vj3Q.0007.wav|과연 그렇게 된 것을 너희가 아느니라 9 | fekudo_vj3Q.0008.wav|이러므로 나도 참다 못하여 너희 믿음을 알기 위하여 그를 보내었노니 10 | fekudo_vj3Q.0009.wav|이는 혹 시험하는 자가 너희를 시험하여 우리 수고를 헛되게 할까 함이니 11 | fekudo_vj3Q.0010.wav|지금은 디모데가 너희에게로부터 와서 너희 믿음과 사랑의 기쁜 소식을 우리에게 전하고 12 | fekudo_vj3Q.0011.wav|또 너희가 항상 우리를 잘 생각하여 우리가 너희를 간절히 보고자 함과 같이 13 | fekudo_vj3Q.0012.wav|너희도 우리를 간절히 보고자 한다 하니 14 | fekudo_vj3Q.0013.wav|이러므로 형제들아 15 | fekudo_vj3Q.0014.wav|우리가 모든 궁핍과 환난 가운데서 16 | fekudo_vj3Q.0015.wav|너희 믿음으로 말미암아 너희에게 위로를 받았노라 17 | fekudo_vj3Q.0016.wav|그러므로 너희가 주 안에 굳게 선즉 우리가 이제는 살리라 18 | fekudo_vj3Q.0017.wav|우리가 우리 하나님 앞에서 너희로 말미암아 모든 기쁨으로 기뻐하니 19 | fekudo_vj3Q.0018.wav|너희를 위하여 능히 어떠한 감사로 하나님께 보답할까 주야로 심히 간구함은 너희 얼굴을 보고 너희 믿음이 부족한 것을 보충하게 하려 함이라 20 | fekudo_vj3Q.0019.wav|하나님 우리 아버지와 우리 주 예수는 21 | fekudo_vj3Q.0020.wav|우리 길을 너희에게로 갈 수 있게 하시오며 22 | fekudo_vj3Q.0021.wav|또 주께서 우리가 너희를 사랑함과 같이 23 | fekudo_vj3Q.0022.wav|너희도 피차간과 모든 사람에 대한 사랑이 더욱 많아 넘치게 하사 24 | fekudo_vj3Q.0023.wav|너희 마음을 굳건하게 하시고 25 | fekudo_vj3Q.0024.wav|우리 주 예수께서 그의 모든 성도와 함께 강림하실 때에 26 | fekudo_vj3Q.0025.wav|하나님 우리 아버지 앞에서 거룩함에 흠이 없 27 | oy_zeZ6OnY0.0000.wav|데살로니가전서 4장 28 | oy_zeZ6OnY0.0001.wav|그러므로 형제들아 우리가 끝으로 주 예수 안에서 너희에게 구하고 권면하노니 29 | oy_zeZ6OnY0.0002.wav|너희가 마땅히 어떻게 행하며 하나님을 기쁘시게 할 수 있는지를 우리에게 배웠으니 30 | oy_zeZ6OnY0.0003.wav|곧 너희가 행하는 바라 더욱 많이 힘쓰라 31 | oy_zeZ6OnY0.0004.wav|우리가 주 예수로 말미암아 너희에게 무슨 명령으로 준 것을 너희가 아느니라 32 | oy_zeZ6OnY0.0005.wav|하나님의 뜻은 이것이니 너희의 거룩함이라 33 | oy_zeZ6OnY0.0006.wav|곧 음란을 버리고 34 | oy_zeZ6OnY0.0007.wav|각각 거룩함과 존귀함으로 자기의 아내 대할 줄을 알고 35 | oy_zeZ6OnY0.0008.wav|하나님을 모르는 이방인과 같이 색욕을 따르지 말고 36 | oy_zeZ6OnY0.0009.wav|이 일에 분수를 넘어서 형제를 해하지 말라 37 | oy_zeZ6OnY0.0010.wav|이는 우리가 너희에게 미리 말하고 증언한 것과 같이 이 모든 일에 주께서 신원하여 주심이라 38 | oy_zeZ6OnY0.0011.wav|하나님이 우리를 부르심은 부정하게 하심이 아니요 거룩하게 하심이니 39 | oy_zeZ6OnY0.0012.wav|그러므로 저버리는 자는 사람을 저버림이 아니요 40 | oy_zeZ6OnY0.0013.wav|너희에게 그의 성령을 주신 하나님을 저버림이니라 41 | oy_zeZ6OnY0.0014.wav|형제 사랑에 관하여는 너희에게 쓸 것이 없음은 42 | oy_zeZ6OnY0.0015.wav|너희들 자신이 하나님의 가르치심을 받아 서로 사랑함이라 43 | oy_zeZ6OnY0.0016.wav|너희가 온 마게도냐 모든 형제에 대하여 과연 이것을 행하도다 44 | oy_zeZ6OnY0.0017.wav|형제들아 권하노니 더욱 그렇게 행하고 45 | oy_zeZ6OnY0.0018.wav|또 너희에게 명한 것 같이 조용히 자기 일을 하고 46 | oy_zeZ6OnY0.0019.wav|너희 손으로 일하기를 힘쓰라 47 | oy_zeZ6OnY0.0020.wav|이는 외인에 대하여 단정히 행하고 48 | oy_zeZ6OnY0.0021.wav|또한 아무 궁핍함이 없게 하려 함이라 49 | oy_zeZ6OnY0.0022.wav|형제들아 50 | oy_zeZ6OnY0.0023.wav|자는 자들에 관하여는 너희가 알지 못함을 우리가 원하지 아니하노니 51 | oy_zeZ6OnY0.0024.wav|이는 소망 없는 다른 이와 같이 슬퍼하지 않게 하려 함이라 52 | oy_zeZ6OnY0.0025.wav|우리가 예수께서 죽으셨다가 다시 살아나심을 믿을진대 53 | oy_zeZ6OnY0.0026.wav|이와 같이 예수 안에서 자는 자들도 하나님이 그와 함께 데리고 오시리라 54 | oy_zeZ6OnY0.0027.wav|우리가 주의 말씀으로 너희에게 이것을 말하노니 55 | oy_zeZ6OnY0.0028.wav|주께서 강림하실 때까지 우리 살아 남아 있는 자도 자는 자보다 결코 앞서지 못하리라 56 | oy_zeZ6OnY0.0029.wav|주께서 호령과 천사장의 소리와 하나님의 나팔 소리로 친히 하늘로부터 강림하시리니 57 | oy_zeZ6OnY0.0030.wav|그리스도 안에서 죽은 자들이 먼저 일어나고 58 | oy_zeZ6OnY0.0031.wav|그 후에 우리 살아 남은 자들도 그들과 함께 구름 속으로 끌어 올려 공중에서 주를 영접하게 하시리니 59 | oy_zeZ6OnY0.0032.wav|그리하여 우리가 항상 주와 함께 있으리라 60 | TsIVdGePxwA.0001.wav|야곱이 길을 떠나 동방 사람의 땅에 이르러 61 | TsIVdGePxwA.0002.wav|본즉 들에 우물이 있고 그 곁에 양 세 떼가 누워 있으니 62 | TsIVdGePxwA.0003.wav|이는 목자들이 그 우물에서 양 떼에게 물을 먹임이라 63 | TsIVdGePxwA.0004.wav|큰 돌로 우물 아귀를 덮었다가 64 | TsIVdGePxwA.0005.wav|모든 떼가 모이면 그들이 우물 아귀에서 돌을 옮기고 65 | TsIVdGePxwA.0006.wav|그 양 떼에게 물을 먹이고는 우물 아귀 그 자리에 다시 그 돌을 덮더라 66 | TsIVdGePxwA.0000.wav|창세기 29장 67 | TsIVdGePxwA.0007.wav|야곱이 그들에게 이르되 68 | TsIVdGePxwA.0008.wav|내 형제여 어디서 왔느냐 69 | TsIVdGePxwA.0009.wav|그들이 이르되 70 | TsIVdGePxwA.0010.wav|하란에서 왔노라 71 | TsIVdGePxwA.0011.wav|야곱이 그들에게 이르되 72 | TsIVdGePxwA.0012.wav|너희가 나홀의 손자 라반을 아느냐 73 | TsIVdGePxwA.0013.wav|그들이 이르되 아노라 74 | TsIVdGePxwA.0014.wav|야곱이 그들에게 이르되 그가 평안하냐 이르되 평안하니라 75 | TsIVdGePxwA.0015.wav|그의 딸 라헬이 지금 양을 몰고 오느니라 76 | TsIVdGePxwA.0016.wav|야곱이 이르되 77 | TsIVdGePxwA.0017.wav|해가 아직 높은즉 가축 모일 때가 아니니 양에게 물을 먹이고 가서 풀을 뜯게 하라 78 | TsIVdGePxwA.0018.wav|그들이 이르되 79 | TsIVdGePxwA.0019.wav|우리가 그리하지 못하겠노라 80 | TsIVdGePxwA.0020.wav|떼가 다 모이고 목자들이 우물 아귀에서 돌을 옮겨야 우리가 양에게 물을 먹이느니라 81 | TsIVdGePxwA.0021.wav|야곱이 그들과 말하는 동안에 라헬이 그의 아버지의 양과 함께 오니 82 | TsIVdGePxwA.0022.wav|그가 그의 양들을 치고 있었기 때문이더라 83 | TsIVdGePxwA.0023.wav|야곱이 그의 외삼촌 라반의 딸 라헬과 84 | TsIVdGePxwA.0024.wav|그의 외삼촌의 양을 보고 나아가 우물 아귀에서 돌을 옮기고 85 | TsIVdGePxwA.0025.wav|외삼촌 라반의 양 떼에게 물을 먹이고 86 | TsIVdGePxwA.0026.wav|그가 라헬에게 입맞추고 소리 내어 울며 87 | TsIVdGePxwA.0027.wav|그에게 자기가 그의 아버지의 생질이요 리브가의 아들 됨을 말하였더니 88 | TsIVdGePxwA.0028.wav|라헬이 달려가서 그 아버지에게 알리매 89 | TsIVdGePxwA.0029.wav|라반이 그의 생질 야곱의 소식을 듣고 달려와서 90 | TsIVdGePxwA.0030.wav|그를 영접하여 안고 입맞추며 91 | TsIVdGePxwA.0031.wav|자기 집으로 인도하여 들이니 92 | TsIVdGePxwA.0032.wav|야곱이 자기의 모든 일을 라반에게 말하매 93 | TsIVdGePxwA.0033.wav|라반이 이르되 94 | TsIVdGePxwA.0034.wav|너는 참으로 내 혈육이로다 하였더라 95 | TsIVdGePxwA.0035.wav|야곱이 한 달을 그와 함께 거주하더니 96 | TsIVdGePxwA.0036.wav|라반이 야곱에게 이르되 97 | TsIVdGePxwA.0037.wav|네가 비록 내 생질이나 어찌 그저 내 일을 하겠느냐 98 | TsIVdGePxwA.0038.wav|네 품삯을 어떻게 할지 내게 말하라 99 | TsIVdGePxwA.0039.wav|라반에게 두 딸이 있으니 100 | TsIVdGePxwA.0040.wav|언니의 이름은 레아요 아우의 이름은 라헬이라 101 | TsIVdGePxwA.0041.wav|레아는 시력이 약하고 라헬은 곱고 아리따우니 102 | TsIVdGePxwA.0042.wav|야곱이 라헬을 더 사랑하므로 대답하되 103 | TsIVdGePxwA.0043.wav|내가 외삼촌의 작은 딸 라헬을 위하여 외삼촌에게 칠 년을 섬기리이다 104 | TsIVdGePxwA.0044.wav|라반이 이르되 105 | TsIVdGePxwA.0045.wav|그를 네게 주는 것이 타인에게 주는 것보다 나으니 나와 함께 있으라 106 | TsIVdGePxwA.0046.wav|야곱이 라헬을 위하여 칠 년 동안 라반을 섬겼으나 107 | TsIVdGePxwA.0047.wav|그를 사랑하는 까닭에 칠 년을 며칠 같이 여겼더라 108 | TsIVdGePxwA.0048.wav|야곱이 라반에게 이르되 109 | TsIVdGePxwA.0049.wav|내 기한이 찼으니 내 아내를 내게 주소서 110 | TsIVdGePxwA.0050.wav|내가 그에게 들어가겠나이다 111 | TsIVdGePxwA.0051.wav|라반이 그 곳 사람을 다 모아 잔치하고 112 | TsIVdGePxwA.0052.wav|저녁에 그의 딸 레아를 야곱에게로 데려가매 113 | TsIVdGePxwA.0053.wav|야곱이 그에게로 들어가니라 114 | TsIVdGePxwA.0054.wav|라반이 또 그의 여종 실바를 그의 딸 레아에게 시녀로 주었더라 115 | TsIVdGePxwA.0055.wav|야곱이 아침에 보니 레아라 116 | TsIVdGePxwA.0056.wav|라반에게 이르되 117 | TsIVdGePxwA.0057.wav|외삼촌이 어찌하여 내게 이같이 행하셨나이까 118 | TsIVdGePxwA.0058.wav|내가 라헬을 위하여 외삼촌을 섬기지 아니하였나이까 119 | TsIVdGePxwA.0059.wav|외삼촌이 나를 속이심은 어찌됨이니이까 120 | TsIVdGePxwA.0060.wav|라반이 이르되 121 | TsIVdGePxwA.0061.wav|언니보다 아우를 먼저 주는 것은 우리 지방에서 하지 아니하는 바이라 122 | TsIVdGePxwA.0062.wav|이를 위하여 칠 일을 채우라 123 | TsIVdGePxwA.0063.wav|우리가 그도 네게 주리니 124 | TsIVdGePxwA.0064.wav|네가 또 나를 칠 년 동안 섬길지니라 125 | TsIVdGePxwA.0065.wav|야곱이 그대로 하여 그 칠 일을 채우매 126 | TsIVdGePxwA.0066.wav|라반이 딸 라헬도 그에게 아내로 주고 127 | TsIVdGePxwA.0067.wav|라반이 또 그의 여종 빌하를 그의 딸 라헬에게 주어 시녀가 되게 하매 128 | TsIVdGePxwA.0068.wav|야곱이 또한 라헬에게로 들어갔고 그가 레아보다 라헬을 더 사랑하여 다시 칠 년 동안 라반을 섬겼더라 129 | TsIVdGePxwA.0069.wav|여호와께서 레아가 사랑 받지 못함을 보시고 그의 태를 여셨으나 130 | TsIVdGePxwA.0070.wav|라헬은 자녀가 없었더라 131 | TsIVdGePxwA.0071.wav|레아가 임신하여 아들을 낳고 그 이름을 르우벤이라 하여 이르되 132 | TsIVdGePxwA.0072.wav|여호와께서 나의 괴로움을 돌보셨으니 133 | TsIVdGePxwA.0073.wav|이제는 내 남편이 나를 사랑하리로다 하였더라 134 | TsIVdGePxwA.0074.wav|그가 다시 임신하여 아들을 낳고 이르되 135 | TsIVdGePxwA.0075.wav|여호와께서 내가 사랑 받지 못함을 들으셨으므로 136 | TsIVdGePxwA.0076.wav|내게 이 아들도 주셨도다 하고 137 | TsIVdGePxwA.0077.wav|그의 이름을 시므온이라 하였으며 138 | TsIVdGePxwA.0078.wav|그가 또 임신하여 아들을 낳고 이르되 139 | TsIVdGePxwA.0079.wav|내가 그에게 세 아들을 낳았으니 140 | TsIVdGePxwA.0080.wav|내 남편이 지금부터 나와 연합하리로다 하고 그의 이름을 레위라 하였으며 141 | TsIVdGePxwA.0081.wav|그가 또 임신하여 아들을 낳고 이르되 142 | TsIVdGePxwA.0082.wav|내가 이제는 여호와를 찬송하리로다 하고 143 | TsIVdGePxwA.0083.wav|이로 말미암아 그가 그의 이름을 유다라 하였고 그의 출산이 멈추었더라 144 | TsIVdGePxwA.0084.wav|창세기 30장 145 | TsIVdGePxwA.0085.wav|라헬이 자기가 야곱에게서 아들을 낳지 못함을 보고 그의 언니를 시기하여 야곱에게 이르되 146 | TsIVdGePxwA.0086.wav|내게 자식을 낳게 하라 147 | TsIVdGePxwA.0087.wav|그렇지 아니하면 내가 죽겠노라 148 | TsIVdGePxwA.0088.wav|야곱이 라헬에게 성을 내어 이르되 149 | TsIVdGePxwA.0089.wav|그대를 임신하지 못하게 하시는 이는 하나님이시니 내가 하나님을 대신하겠느냐 150 | TsIVdGePxwA.0090.wav|라헬이 이르되 151 | TsIVdGePxwA.0091.wav|내 여종 빌하에게로 들어가라 152 | TsIVdGePxwA.0092.wav|그가 아들을 낳아 내 무릎에 두리니 그러면 나도 그로 말미암아 자식을 얻겠노라 하고 153 | TsIVdGePxwA.0093.wav|그의 시녀 빌하를 남편에게 아내로 주매 154 | TsIVdGePxwA.0094.wav|야곱이 그에게로 들어갔더니 155 | TsIVdGePxwA.0095.wav|빌하가 임신하여 야곱에게 아들을 낳은지라 156 | TsIVdGePxwA.0096.wav|라헬이 이르되 157 | TsIVdGePxwA.0097.wav|하나님이 내 억울함을 푸시려고 내 호소를 들으사 내게 아들을 주셨다 하고 158 | TsIVdGePxwA.0098.wav|이로 말미암아 그의 이름을 단이라 하였으며 159 | TsIVdGePxwA.0099.wav|라헬의 시녀 빌하가 다시 임신하여 둘째 아들을 야곱에게 낳으매 160 | TsIVdGePxwA.0100.wav|라헬이 이르되 161 | TsIVdGePxwA.0101.wav|내가 언니와 크게 경쟁하여 이겼다 하고 그의 이름을 납달리라 하였더라 162 | TsIVdGePxwA.0102.wav|레아가 자기의 출산이 멈춤을 보고 그의 시녀 실바를 데려다가 야곱에게 주어 아내로 삼게 하였더니 163 | TsIVdGePxwA.0103.wav|레아의 시녀 실바가 야곱에게서 아들을 낳으매 164 | TsIVdGePxwA.0104.wav|레아가 이르되 복되도다 하고 165 | TsIVdGePxwA.0105.wav|그의 이름을 갓이라 하였으며 166 | TsIVdGePxwA.0106.wav|레아의 시녀 실바가 둘째 아들을 야곱에게 낳으매 167 | TsIVdGePxwA.0107.wav|레아가 이르되 기쁘도다 모든 딸들이 나를 기쁜 자라 하리로다 하고 그의 이름을 아셀이라 하였더라 168 | TsIVdGePxwA.0108.wav|밀 거둘 때 르우벤이 나가서 들에서 합환채를 얻어 그의 어머니 레아에게 드렸더니 169 | TsIVdGePxwA.0109.wav|라헬이 레아에게 이르되 170 | TsIVdGePxwA.0110.wav|언니의 아들의 합환채를 청구하노라 171 | TsIVdGePxwA.0111.wav|레아가 그에게 이르되 172 | TsIVdGePxwA.0112.wav|네가 내 남편을 빼앗은 것이 작은 일이냐 173 | TsIVdGePxwA.0113.wav|그런데 네가 내 아들의 합환채도 빼앗고자 하느냐 174 | TsIVdGePxwA.0114.wav|라헬이 이르되 175 | TsIVdGePxwA.0115.wav|그러면 언니의 아들의 합환채 대신에 오늘 밤에 내 남편이 언니와 동침하리라 하니라 176 | TsIVdGePxwA.0116.wav|저물 때에 야곱이 들에서 돌아오매 177 | TsIVdGePxwA.0117.wav|레아가 나와서 그를 영접하며 이르되 내게로 들어오라 178 | TsIVdGePxwA.0118.wav|내가 내 아들의 합환채로 당신을 샀노라 179 | TsIVdGePxwA.0119.wav|그 밤에 야곱이 그와 동침하였더라 180 | TsIVdGePxwA.0120.wav|하나님이 레아의 소원을 들으셨으므로 그가 임신하여 다섯째 아들을 야곱에게 낳은지라 181 | TsIVdGePxwA.0121.wav|레아가 이르되 182 | TsIVdGePxwA.0122.wav|내가 내 시녀를 내 남편에게 주었으므로 183 | TsIVdGePxwA.0123.wav|하나님이 내게 그 값을 주셨다 하고 그의 이름을 잇사갈이라 하였으며 184 | TsIVdGePxwA.0124.wav|레아가 다시 임신하여 여섯째 아들을 야곱에게 낳은지라 185 | TsIVdGePxwA.0125.wav|레아가 이르되 186 | TsIVdGePxwA.0126.wav|하나님이 내게 후한 선물을 주시도다 187 | TsIVdGePxwA.0127.wav|내가 남편에게 여섯 아들을 낳았으니 188 | TsIVdGePxwA.0128.wav|이제는 그가 나와 함께 살리라 하고 189 | TsIVdGePxwA.0129.wav|그의 이름을 스불론이라 하였으며 190 | TsIVdGePxwA.0130.wav|그 후에 그가 딸을 낳고 그의 이름을 디나라 하였더라 191 | TsIVdGePxwA.0131.wav|하나님이 라헬을 생각하신지라 192 | TsIVdGePxwA.0132.wav|하나님이 그의 소원을 들으시고 그의 태를 여셨으므로 193 | TsIVdGePxwA.0133.wav|그가 임신하여 아들을 낳고 이르되 194 | TsIVdGePxwA.0134.wav|하나님이 내 부끄러움을 씻으셨다 하고 195 | TsIVdGePxwA.0135.wav|그 이름을 요셉이라 하니 196 | TsIVdGePxwA.0136.wav|여호와는 다시 다른 아들을 내게 더하시기를 원하노라 하였더라 197 | TsIVdGePxwA.0137.wav|라헬이 요셉을 낳았을 때에 야곱이 라반에게 이르되 198 | TsIVdGePxwA.0138.wav|나를 보내어 내 고향 나의 땅으로 가게 하시되 199 | TsIVdGePxwA.0139.wav|내가 외삼촌에게서 일하고 얻은 처자를 내게 주시어 나로 가게 하소서 200 | TsIVdGePxwA.0140.wav|내가 외삼촌에게 한 일은 외삼촌이 아시나이다 201 | TsIVdGePxwA.0141.wav|라반이 그에게 이르되 202 | TsIVdGePxwA.0142.wav|여호와께서 너로 말미암아 내게 복 주신 줄을 내가 깨달았노니 203 | TsIVdGePxwA.0143.wav|네가 나를 사랑스럽게 여기거든 그대로 있으라 204 | TsIVdGePxwA.0144.wav|또 이르되 네 품삯을 정하라 205 | TsIVdGePxwA.0145.wav|내가 그것을 주리라 206 | TsIVdGePxwA.0146.wav|야곱이 그에게 이르되 207 | TsIVdGePxwA.0147.wav|내가 어떻게 외삼촌을 섬겼는지 어떻게 외삼촌의 가축을 쳤는지 외삼촌이 아시나이다 208 | TsIVdGePxwA.0148.wav|내가 오기 전에는 외삼촌의 소유가 적더니 209 | TsIVdGePxwA.0149.wav|떼를 이루었으니 내 발이 이르는 곳마다 여호와께서 외삼촌에게 복을 주셨나이다 210 | TsIVdGePxwA.0150.wav|그러나 나는 언제나 내 집을 세우리이까 211 | TsIVdGePxwA.0151.wav|라반이 이르되 212 | TsIVdGePxwA.0152.wav|내가 무엇으로 네게 주랴 213 | TsIVdGePxwA.0153.wav|야곱이 이르되 214 | TsIVdGePxwA.0154.wav|외삼촌께서 내게 아무것도 주시지 않아도 나를 위하여 이 일을 행하시면 내가 다시 외삼촌의 양 떼를 먹이고 지키리이다 215 | TsIVdGePxwA.0155.wav|오늘 내가 외삼촌의 양 떼에 두루 다니며 그 양 중에 아롱진 것과 점 있는 것과 검은 것을 가려내며 216 | TsIVdGePxwA.0156.wav|또 염소 중에 점 있는 것과 아롱진 것을 가려내리니 217 | TsIVdGePxwA.0157.wav|이같은 것이 내 품삯이 되리이다 218 | TsIVdGePxwA.0158.wav|후일에 외삼촌께서 오셔서 내 품삯을 조사하실 때에 219 | TsIVdGePxwA.0159.wav|나의 의가 내 대답이 되리이다 220 | TsIVdGePxwA.0160.wav|내게 혹시 염소 중 아롱지지 아니한 것이나 점이 없는 것이나 221 | TsIVdGePxwA.0161.wav|양 중에 검지 아니한 것이 있거든 다 도둑질한 것으로 인정하소서 222 | TsIVdGePxwA.0162.wav|라반이 이르되 223 | TsIVdGePxwA.0163.wav|내가 네 말대로 하리라 하고 224 | TsIVdGePxwA.0164.wav|그 날에 그가 숫염소 중 얼룩무늬 있는 것과 점 있는 것을 가리고 225 | TsIVdGePxwA.0165.wav|암염소 중 흰 바탕에 아롱진 것과 점 있는 것을 가리고 226 | TsIVdGePxwA.0166.wav|양 중의 검은 것들을 가려 자기 아들들의 손에 맡기고 227 | TsIVdGePxwA.0167.wav|자기와 야곱의 사이를 사흘 길이 뜨게 하였고 야곱은 라반의 남은 양 떼를 치니라 228 | TsIVdGePxwA.0168.wav|야곱이 버드나무와 살구나무와 신풍나무의 푸른 가지를 가져다가 229 | TsIVdGePxwA.0169.wav|그것들의 껍질을 벗겨 흰 무늬를 내고 230 | TsIVdGePxwA.0170.wav|그 껍질 벗긴 가지를 양 떼가 와서 먹는 개천의 물 구유에 세워 231 | TsIVdGePxwA.0171.wav|양 떼를 향하게 하매 232 | TsIVdGePxwA.0172.wav|그 떼가 물을 먹으러 올 때에 새끼를 배니 233 | TsIVdGePxwA.0173.wav|가지 앞에서 새끼를 배므로 얼룩얼룩한 것과 점이 있고 아롱진 것을 낳은지라 234 | TsIVdGePxwA.0174.wav|야곱이 새끼 양을 구분하고 그 얼룩무늬와 검은 빛 있는 것을 라반의 양과 서로 마주보게 하며 235 | TsIVdGePxwA.0175.wav|자기 양을 따로 두어 라반의 양과 섞이지 않게 하며 236 | TsIVdGePxwA.0176.wav|튼튼한 양이 새끼 밸 때에는 야곱이 개천에다가 양 떼의 눈 앞에 그 가지를 두어 237 | TsIVdGePxwA.0177.wav|양이 그 가지 곁에서 새끼를 배게 하고 238 | TsIVdGePxwA.0178.wav|약한 양이면 그 가지를 두지 아니하니 239 | TsIVdGePxwA.0179.wav|그렇게 함으로 약한 것은 라반의 것이 되고 240 | TsIVdGePxwA.0180.wav|튼튼한 것은 야곱의 것이 된지라 241 | TsIVdGePxwA.0181.wav|이에 그 사람이 매우 번창하여 양 떼와 노비와 낙타와 나귀가 많았더라 242 | TsIVdGePxwA.0182.wav|창세기 31장 243 | TsIVdGePxwA.0183.wav|야곱이 라반의 아들들이 하는 말을 들은즉 244 | TsIVdGePxwA.0184.wav|야곱이 우리 아버지의 소유를 다 빼앗고 245 | TsIVdGePxwA.0185.wav|우리 아버지의 소유로 말미암아 이 모든 재물을 모았다 하는지라 246 | TsIVdGePxwA.0186.wav|야곱이 라반의 안색을 본즉 자기에게 대하여 전과 같지 아니하더라 247 | TsIVdGePxwA.0187.wav|여호와께서 야곱에게 이르시되 248 | TsIVdGePxwA.0188.wav|네 조상의 땅 네 족속에게로 돌아가라 249 | TsIVdGePxwA.0189.wav|내가 너와 함께 있으리라 하신지라 250 | TsIVdGePxwA.0190.wav|야곱이 사람을 보내어 라헬과 레아를 자기 양 떼가 있는 들로 불러다가 251 | TsIVdGePxwA.0191.wav|그들에게 이르되 252 | TsIVdGePxwA.0192.wav|내가 그대들의 아버지의 안색을 본즉 253 | TsIVdGePxwA.0193.wav|내게 대하여 전과 같지 아니하도다 254 | TsIVdGePxwA.0194.wav|그러할지라도 내 아버지의 하나님은 나와 함께 계셨느니라 255 | TsIVdGePxwA.0195.wav|그대들도 알거니와 내가 힘을 다하여 그대들의 아버지를 섬겼거늘 256 | TsIVdGePxwA.0196.wav|그대들의 아버지가 나를 속여 품삯을 열 번이나 변경하였느니라 257 | TsIVdGePxwA.0197.wav|그러나 하나님이 그를 막으사 나를 해치지 못하게 하셨으며 258 | TsIVdGePxwA.0198.wav|그가 이르기를 점 있는 것이 네 삯이 되리라 하면 259 | TsIVdGePxwA.0199.wav|온 양 떼가 낳은 것이 점 있는 것이요 260 | TsIVdGePxwA.0200.wav|또 얼룩무늬 있는 것이 네 삯이 되리라 하면 온 양 떼가 낳은 것이 얼룩무늬 있는 것이니 261 | TsIVdGePxwA.0201.wav|하나님이 이같이 그대들의 아버지의 가축을 빼앗아 내게 주셨느니라 262 | TsIVdGePxwA.0202.wav|그 양 떼가 새끼 밸 때에 내가 꿈에 눈을 들어 보니 263 | TsIVdGePxwA.0203.wav|양 떼를 탄 숫양은 다 얼룩무늬 있는 것과 점 있는 것과 아롱진 것이었더라 264 | TsIVdGePxwA.0204.wav|꿈에 하나님의 사자가 내게 말씀하시기를 265 | TsIVdGePxwA.0205.wav|야곱아 하기로 내가 대답하기를 여기 있나이다 하매 266 | TsIVdGePxwA.0206.wav|이르시되 네 눈을 들어 보라 267 | TsIVdGePxwA.0207.wav|양 떼를 탄 숫양은 다 얼룩무늬 있는 것 점 있는 것과 아롱진 것이니라 268 | TsIVdGePxwA.0208.wav|라반이 네게 행한 모든 것을 내가 보았노라 269 | TsIVdGePxwA.0209.wav|나는 벧엘의 하나님이라 270 | TsIVdGePxwA.0210.wav|네가 거기서 기둥에 기름을 붓고 271 | TsIVdGePxwA.0211.wav|거기서 내게 서원하였으니 272 | TsIVdGePxwA.0212.wav|지금 일어나 이 곳을 떠나서 네 출생지로 돌아가라 하셨느니라 273 | TsIVdGePxwA.0213.wav|라헬과 레아가 그에게 대답하여 이르되 274 | TsIVdGePxwA.0214.wav|우리가 우리 아버지 집에서 무슨 분깃이나 유산이 있으리요 275 | TsIVdGePxwA.0215.wav|아버지가 우리를 팔고 우리의 돈을 다 먹어버렸으니 276 | TsIVdGePxwA.0216.wav|아버지가 우리를 외국인처럼 여기는 것이 아닌가 277 | TsIVdGePxwA.0217.wav|하나님이 우리 아버지에게서 취하여 가신 재물은 278 | TsIVdGePxwA.0218.wav|우리와 우리 자식의 것이니 279 | TsIVdGePxwA.0219.wav|이제 하나님이 당신에게 이르신 일을 다 준행하라 280 | TsIVdGePxwA.0220.wav|야곱이 일어나 자식들과 아내들을 낙타들에게 태우고 281 | TsIVdGePxwA.0221.wav|그 모은 바 모든 가축과 모든 소유물 곧 그가 밧단아람에서 모은 가축을 이끌고 282 | TsIVdGePxwA.0222.wav|가나안 땅에 있는 그의 아버지 이삭에게로 가려 할새 283 | TsIVdGePxwA.0223.wav|그 때에 라반이 양털을 깎으러 갔으므로 284 | TsIVdGePxwA.0224.wav|라헬은 그의 아버지의 드라빔을 도둑질하고 285 | TsIVdGePxwA.0225.wav|야곱은 그 거취를 아람 사람 라반에게 말하지 아니하고 가만히 떠났더라 286 | TsIVdGePxwA.0226.wav|그가 그의 모든 소유를 이끌고 강을 건너 길르앗 산을 향하여 도망한 지 287 | TsIVdGePxwA.0227.wav|삼 일 만에 야곱이 도망한 것이 라반에게 들린지라 288 | TsIVdGePxwA.0228.wav|라반이 그의 형제를 거느리고 289 | TsIVdGePxwA.0229.wav|칠 일 길을 쫓아가 길르앗 산에서 그에게 이르렀더니 290 | TsIVdGePxwA.0230.wav|밤에 하나님이 아람 사람 라반에게 현몽하여 이르시되 291 | TsIVdGePxwA.0231.wav|너는 삼가 야곱에게 선악간에 말하지 말라 하셨더라 292 | TsIVdGePxwA.0232.wav|라반이 야곱을 뒤쫓아 이르렀으니 293 | TsIVdGePxwA.0233.wav|야곱이 그 산에 장막을 친지라 294 | TsIVdGePxwA.0234.wav|라반이 그 형제와 더불어 길르앗 산에 장막을 치고 295 | TsIVdGePxwA.0235.wav|라반이 야곱에게 이르되 296 | TsIVdGePxwA.0236.wav|네가 나를 속이고 내 딸들을 칼에 사로잡힌 자 같이 끌고 갔으니 어찌 이같이 하였느냐 297 | TsIVdGePxwA.0237.wav|내가 즐거움과 노래와 북과 수금으로 너를 보내겠거늘 298 | TsIVdGePxwA.0238.wav|어찌하여 네가 나를 속이고 가만히 도망하고 내게 알리지 아니하였으며 299 | TsIVdGePxwA.0239.wav|내가 내 손자들과 딸들에게 입맞추지 못하게 하였으니 300 | TsIVdGePxwA.0240.wav|네 행위가 참으로 어리석도다 301 | TsIVdGePxwA.0241.wav|너를 해할 만한 능력이 내 손에 있으나 너희 아버지의 하나님이 어제 밤에 내게 말씀하시기를 302 | TsIVdGePxwA.0247.wav|외삼촌이 외삼촌의 딸들을 내게서 억지로 빼앗으리라 하여 두려워하였음이니이다 303 | TsIVdGePxwA.0246.wav|내가 생각하기를 304 | TsIVdGePxwA.0245.wav|야곱이 라반에게 대답하여 이르되 305 | TsIVdGePxwA.0244.wav|어찌 내 신을 도둑질하였느냐 306 | TsIVdGePxwA.0243.wav|이제 네가 네 아버지 집을 사모하여 돌아가려는 것은 옳거니와 어찌 307 | TsIVdGePxwA.0242.wav|너는 삼가 야곱에게 선악간에 말하지 말라 하셨느니라 308 | TsIVdGePxwA.0248.wav|외삼촌의 신을 누구에게서 찾든지 그는 살지 못할 것이요 309 | TsIVdGePxwA.0249.wav|우리 형제들 앞에서 무엇이든지 외삼촌의 것이 발견되거든 310 | TsIVdGePxwA.0250.wav|외삼촌에게로 가져가소서 하니 311 | TsIVdGePxwA.0251.wav|야곱은 라헬이 그것을 도둑질한 줄을 알지 못함이었더라 312 | TsIVdGePxwA.0252.wav|라반이 야곱의 장막에 들어가고 레아의 장막에 들어가고 313 | TsIVdGePxwA.0253.wav|두 여종의 장막에 들어갔으나 찾지 못하고 314 | TsIVdGePxwA.0254.wav|레아의 장막에서 나와 라헬의 장막에 들어가매 315 | TsIVdGePxwA.0255.wav|라헬이 그 드라빔을 가져 낙타 안장 아래에 넣고 그 위에 앉은지라 316 | TsIVdGePxwA.0256.wav|라반이 그 장막에서 찾다가 찾아내지 못하매 317 | TsIVdGePxwA.0257.wav|라헬이 그의 아버지에게 이르되 318 | TsIVdGePxwA.0258.wav|마침 생리가 있어 일어나서 영접할 수 없사오니 319 | TsIVdGePxwA.0259.wav|내 주는 노하지 마소서 하니라 320 | TsIVdGePxwA.0260.wav|라반이 그 드라빔을 두루 찾다가 찾아내지 못한지라 321 | TsIVdGePxwA.0261.wav|야곱이 노하여 라반을 책망할새 322 | TsIVdGePxwA.0262.wav|야곱이 라반에게 대답하여 이르되 323 | TsIVdGePxwA.0263.wav|내 허물이 무엇이니이까 324 | TsIVdGePxwA.0264.wav|무슨 죄가 있기에 외삼촌께서 내 뒤를 급히 추격하나이까 325 | TsIVdGePxwA.0265.wav|외삼촌께서 내 물건을 다 뒤져보셨으니 외삼촌의 집안 물건 중에서 무엇을 찾아내었나이까 326 | TsIVdGePxwA.0266.wav|여기 내 형제와 외삼촌의 형제 앞에 327 | TsIVdGePxwA.0267.wav|그것을 두고 우리 둘 사이에 판단하게 하소서 328 | TsIVdGePxwA.0268.wav|내가 이 이십 년을 외삼촌과 함께 하였거니와 329 | TsIVdGePxwA.0269.wav|외삼촌의 암양들이나 암염소들이 낙태하지 아니하였고 330 | TsIVdGePxwA.0270.wav|또 외삼촌의 양 떼의 숫양을 내가 먹지 아니하였으며 331 | TsIVdGePxwA.0271.wav|물려 찢긴 것은 내가 외삼촌에게로 가져가지 아니하고 332 | TsIVdGePxwA.0272.wav|낮에 도둑을 맞았든지 밤에 도둑을 맞았든지 333 | TsIVdGePxwA.0273.wav|외삼촌이 그것을 내 손에서 찾았으므로 내가 스스로 그것을 보충하였으며 334 | TsIVdGePxwA.0274.wav|내가 이와 같이 낮에는 더위와 밤에는 추위를 무릅쓰고 335 | TsIVdGePxwA.0275.wav|눈 붙일 겨를도 없이 지냈나이다 336 | TsIVdGePxwA.0276.wav|내가 외삼촌의 집에 있는 이 이십 년 동안 337 | TsIVdGePxwA.0277.wav|외삼촌의 두 딸을 위하여 십사 년 338 | TsIVdGePxwA.0279.wav|우리 아버지의 하나님, 아브라함의 하나님 곧 이삭이 경외하는 이가 339 | TsIVdGePxwA.0278.wav|외삼촌께서 내 품삯을 열 번이나 바꾸셨으며 340 | TsIVdGePxwA.0280.wav|이가 나와 함께 계시지 아니하셨더라면 341 | TsIVdGePxwA.0281.wav|외삼촌께서 이제 나를 빈손으로 돌려보내셨으리이다마는 342 | TsIVdGePxwA.0282.wav|하나님이 내 고난과 내 손의 수고를 보시고 어제 밤에 외삼촌을 책망하셨나이다 343 | TsIVdGePxwA.0283.wav|라반이 야곱에게 대답하여 이르되 344 | TsIVdGePxwA.0284.wav|딸들은 내 딸이요 자식들은 내 자식이요 345 | TsIVdGePxwA.0285.wav|양 떼는 내 양 떼요 네가 보는 것은 다 내 것이라 346 | TsIVdGePxwA.0287.wav|이제 오라 347 | TsIVdGePxwA.0286.wav|내가 오늘 내 딸들과 그들이 낳은 자식들에게 무엇을 하겠느냐 348 | TsIVdGePxwA.0288.wav|나와 네가 언약을 맺고 그것으로 너와 나 사이에 증거를 삼을 것이니라 349 | TsIVdGePxwA.0289.wav|이에 야곱이 돌을 가져다가 기둥으로 세우고 350 | TsIVdGePxwA.0290.wav|또 그 형제들에게 돌을 모으라 하니 351 | TsIVdGePxwA.0291.wav|무리가 거기 무더기 곁에서 먹고 352 | TsIVdGePxwA.0292.wav|라반은 그것을 여갈사하두다라 불렀고 353 | TsIVdGePxwA.0293.wav|야곱은 그것을 갈르엣이라 불렀으니 354 | TsIVdGePxwA.0294.wav|라반의 말에 오늘 이 무더기가 너와 나 사이에 증거가 된다 하였으므로 355 | TsIVdGePxwA.0295.wav|그 이름을 갈르엣이라 불렀으며 356 | TsIVdGePxwA.0296.wav|또 미스바라 하였으니 357 | TsIVdGePxwA.0297.wav|이는 그의 말에 우리가 서로 떠나 있을 때에 여호와께서 나와 너 사이를 살피시옵소서 함이라 358 | TsIVdGePxwA.0298.wav|만일 네가 내 딸을 박대하거나 내 딸들 외에 다른 아내들을 맞이하면 359 | TsIVdGePxwA.0299.wav|우리와 함께 할 사람은 없어도 보라 하나님이 나와 너 사이에 증인이 되시느니라 함이었더라 360 | TsIVdGePxwA.0300.wav|라반이 또 야곱에게 이르되 361 | TsIVdGePxwA.0301.wav|내가 나와 너 사이에 둔 이 무더기를 보라 362 | TsIVdGePxwA.0302.wav|또 이 기둥을 보라 363 | TsIVdGePxwA.0303.wav|이 무더기가 증거가 되고 이 기둥이 증거가 되나니 364 | TsIVdGePxwA.0304.wav|내가 이 무더기를 넘어 네게로 가서 해하지 않을 것이요 365 | TsIVdGePxwA.0305.wav|네가 이 무더기 이 기둥을 넘어 내게로 와서 해하지 아니할 것이라 366 | TsIVdGePxwA.0306.wav|아브라함의 하나님 나홀의 하나님 367 | TsIVdGePxwA.0307.wav|그들의 조상의 하나님은 368 | TsIVdGePxwA.0308.wav|우리 사이에 판단하옵소서 하매 369 | TsIVdGePxwA.0309.wav|야곱이 그의 아버지 이삭이 경외하는 이를 가리켜 맹세하고 370 | TsIVdGePxwA.0310.wav|야곱이 또 산에서 제사를 드리고 형제들을 불러 떡을 먹이니 371 | TsIVdGePxwA.0311.wav|그들이 떡을 먹고 산에서 밤을 지내고 372 | TsIVdGePxwA.0312.wav|라반이 아침에 일찍이 일어나 373 | TsIVdGePxwA.0313.wav|손자들과 딸들에게 입맞추며 그들에게 축복하고 떠나 고향으로 돌아갔더라 374 | TsIVdGePxwA.0314.wav|시편 9편 375 | TsIVdGePxwA.0315.wav|내가 전심으로 여호와께 감사하오며 주의 모든 기이한 일들을 전하리이다 376 | TsIVdGePxwA.0316.wav|내가 주를 기뻐하고 즐거워하며 지존하신 주의 이름을 찬송하리니 377 | TsIVdGePxwA.0317.wav|내 원수들이 물러갈 때에 주 앞에서 넘어져 망함이니이다 378 | TsIVdGePxwA.0318.wav|주께서 나의 의와 송사를 변호하셨으며 379 | TsIVdGePxwA.0319.wav|보좌에 앉으사 의롭게 심판하셨나이다 380 | TsIVdGePxwA.0320.wav|이방 나라들을 책망하시고 악인을 멸하시며 381 | TsIVdGePxwA.0321.wav|그들의 이름을 영원히 지우셨나이다 382 | TsIVdGePxwA.0322.wav|원수가 끊어져 영원히 멸망하였사오니 383 | TsIVdGePxwA.0323.wav|주께서 무너뜨린 성읍들을 기억할 수 없나이다 384 | TsIVdGePxwA.0324.wav|여호와께서 영원히 앉으심이여 385 | TsIVdGePxwA.0325.wav|심판을 위하여 보좌를 준비하셨도다 386 | TsIVdGePxwA.0326.wav|공의로 세계를 심판하심이여 정직으로 만민에게 판결을 내리시리로다 387 | TsIVdGePxwA.0327.wav|여호와는 압제를 당하는 자의 요새이시요 환난 때의 요새이시로다 388 | TsIVdGePxwA.0328.wav|여호와여 389 | TsIVdGePxwA.0329.wav|주의 이름을 아는 자는 주를 의지하오리니 390 | TsIVdGePxwA.0330.wav|이는 주를 찾는 자들을 버리지 아니하심이니이다 391 | TsIVdGePxwA.0331.wav|너희는 시온에 계신 여호와를 찬송하며 그의 행사를 백성 중에 선포할지어다 392 | TsIVdGePxwA.0332.wav|피 흘림을 심문하시는 이가 그들을 기억하심이여 393 | TsIVdGePxwA.0333.wav|가난한 자의 부르짖음을 잊지 아니하시도다 394 | TsIVdGePxwA.0334.wav|여호와여 내게 은혜를 베푸소서 395 | TsIVdGePxwA.0335.wav|나를 사망의 문에서 일으키시는 주여 나를 미워하는 자에게서 받는 나의 고통을 보소서 396 | TsIVdGePxwA.0336.wav|그리하시면 내가 주의 찬송을 다 전할 것이요 397 | TsIVdGePxwA.0337.wav|딸 시온의 문에서 주의 구원을 기뻐하리이다 398 | TsIVdGePxwA.0338.wav|이방 나라들은 자기가 판 웅덩이에 빠짐이여 399 | TsIVdGePxwA.0339.wav|자기가 숨긴 그물에 자기 발이 걸렸도다 400 | TsIVdGePxwA.0340.wav|여호와께서 자기를 알게 하사 심판을 행하셨음이여 401 | TsIVdGePxwA.0341.wav|악인은 자기가 손으로 행한 일에 스스로 얽혔도다 402 | TsIVdGePxwA.0342.wav|힉가욘 셀라 403 | TsIVdGePxwA.0343.wav|악인들이 스올로 돌아감이여 404 | TsIVdGePxwA.0344.wav|하나님을 잊어버린 모든 이방 나라들이 그리하리로다 405 | TsIVdGePxwA.0345.wav|궁핍한 자가 항상 잊어버림을 당하지 아니함이여 406 | TsIVdGePxwA.0346.wav|가난한 자들이 영원히 실망하지 아니하리로다 407 | TsIVdGePxwA.0347.wav|여호와여 일어나사 인생으로 승리를 얻지 못하게 하시며 408 | TsIVdGePxwA.0348.wav|이방 나라들이 주 앞에서 심판을 받게 하소서 409 | TsIVdGePxwA.0349.wav|여호와여 그들을 두렵게 하시며 410 | TsIVdGePxwA.0350.wav|이방 나라들이 자기는 인생일 뿐인 줄 알게 하소서 411 | Ml6nUSw0tPY.0000.wav|골로새서 2장 412 | Ml6nUSw0tPY.0001.wav|내가 너희와 라오디게아에 있는 자들과 무릇 내 육신의 얼굴을 보지 못한 자들을 위하여 얼마나 힘쓰는지를 너희가 알기를 원하노니 413 | Ml6nUSw0tPY.0002.wav|이는 그들로 마음에 위안을 받고 사랑 안에서 연합하여 확실한 이해의 모든 풍성함과 하나님의 비밀인 그리스도를 깨닫게 하려 함이니 414 | Ml6nUSw0tPY.0003.wav|그 안에는 지혜와 지식의 모든 보화가 감추어져 있느니라 415 | Ml6nUSw0tPY.0004.wav|내가 이것을 말함은 아무도 교묘한 말로 너희를 속이지 못하게 하려 함이니 416 | Ml6nUSw0tPY.0005.wav|이는 내가 육신으로는 떠나 있으나 심령으로는 너희와 함께 있어 너희가 질서 있게 행함과 그리스도를 믿는 너희 믿음이 굳건한 것을 기쁘게 봄이라 417 | Ml6nUSw0tPY.0006.wav|그러므로 너희가 그리스도 예수를 주로 받았으니 그 안에서 행하되 418 | Ml6nUSw0tPY.0007.wav|그 안에 뿌리를 박으며 세움을 받아 교훈을 받은 대로 믿음에 굳게 서서 감사함을 넘치게 하라 419 | Ml6nUSw0tPY.0008.wav|누가 철학과 헛된 속임수로 너희를 사로잡을까 주의하라 420 | Ml6nUSw0tPY.0009.wav|이것은 사람의 전통과 세상의 초등학문을 따름이요 421 | Ml6nUSw0tPY.0010.wav|그리스도를 따름이 아니니라 422 | Ml6nUSw0tPY.0011.wav|그 안에는 신성의 모든 충만이 육체로 거하시고 423 | Ml6nUSw0tPY.0012.wav|너희도 그 안에서 충만하여졌으니 그는 모든 통치자와 권세의 머리시라 424 | Ml6nUSw0tPY.0013.wav|또 그 안에서 너희가 손으로 하지 아니한 할례를 받았으니 425 | Ml6nUSw0tPY.0014.wav|곧 육의 몸을 벗는 것이요 그리스도의 할례니라 426 | Ml6nUSw0tPY.0015.wav|너희가 세례로 그리스도와 함께 장사되고 또 죽은 자들 가운데서 그를 일으키신 하나님의 역사를 믿음으로 말미암아 427 | Ml6nUSw0tPY.0016.wav|그 안에서 함께 일으키심을 받았느니라 428 | Ml6nUSw0tPY.0017.wav|또 범죄와 육체의 무할례로 죽었던 너희를 429 | Ml6nUSw0tPY.0018.wav|하나님이 그와 함께 살리시고 우리의 모든 죄를 사하시고 우리를 거스르고 불리하게 하는 법조문으로 쓴 증서를 지우시고 제하여 버리사 십자가에 못 박으시고 430 | Ml6nUSw0tPY.0019.wav|통치자들과 권세들을 무력화하여 드러내어 구경거리로 삼으시고 431 | Ml6nUSw0tPY.0020.wav|십자가로 그들을 이기셨느니라 432 | Ml6nUSw0tPY.0021.wav|그러므로 먹고 마시는 것과 절기나 초하루나 안식일을 이유로 누구든지 너희를 비판하지 못하게 하라 433 | Ml6nUSw0tPY.0022.wav|이것들은 장래 일의 그림자이나 몸은 그리스도의 것이니라 434 | Ml6nUSw0tPY.0023.wav|아무도 꾸며낸 겸손과 천사 숭배를 이유로 너희를 정죄하지 못하게 하라 435 | Ml6nUSw0tPY.0024.wav|그가 그 본 것에 의지하여 그 육신의 생각을 따라 헛되이 과장하고 436 | Ml6nUSw0tPY.0025.wav|머리를 붙들지 아니하는지라 437 | Ml6nUSw0tPY.0026.wav|온 몸이 머리로 말미암아 마디와 힘줄로 공급함을 받고 438 | Ml6nUSw0tPY.0027.wav|연합하여 하나님이 자라게 하시므로 자라느니라 너희가 세상의 초등학문에서 그리스도와 함께 죽었거든 439 | Ml6nUSw0tPY.0028.wav|어찌하여 세상에 사는 것과 같이 규례에 순종하느냐 440 | Ml6nUSw0tPY.0029.wav|곧 441 | Ml6nUSw0tPY.0030.wav|붙잡지도 말고 맛보지도 말고 만지지도 말라 하는 것이니 442 | Ml6nUSw0tPY.0031.wav|이 모든 것은 한때 쓰이고는 없어지리라 443 | Ml6nUSw0tPY.0032.wav|사람의 명령과 가르침을 따르느냐 444 | Ml6nUSw0tPY.0033.wav|이런 것들은 자의적 숭배와 겸손과 몸을 괴롭게 하는 데는 지혜 있는 모양이나 445 | Ml6nUSw0tPY.0034.wav|오직 육체 따르는 것을 금하는 데는 446 | 1avyadmC4uA.0000.wav|마태복음 3장 447 | 1avyadmC4uA.0001.wav|그 때에 세례 요한이 이르러 유대 광야에서 전파하여 말하되 448 | 1avyadmC4uA.0002.wav|회개하라 천국이 가까이 왔느니라 하였으니 449 | 1avyadmC4uA.0003.wav|그는 선지자 이사야를 통하여 말씀하신 자라 일렀으되 450 | 1avyadmC4uA.0004.wav|광야에 외치는 자의 소리가 있어 이르되 너희는 주의 길을 준비하라 451 | 1avyadmC4uA.0005.wav|그가 오실 길을 곧게 하라 하였느니라 452 | 1avyadmC4uA.0006.wav|이 요한은 낙타털 옷을 입고 허리에 가죽 띠를 띠고 음식은 메뚜기와 석청이었더라 453 | 1avyadmC4uA.0007.wav|이 때에 예루살렘과 온 유대와 요단 강 사방에서 다 그에게 나아와 454 | 1avyadmC4uA.0008.wav|자기들의 죄를 자복하고 455 | 1avyadmC4uA.0009.wav|요단 강에서 그에게 세례를 받더니 456 | 1avyadmC4uA.0010.wav|요한이 많은 바리새인들과 사두개인들이 세례 베푸는 데로 오는 것을 보고 이르되 457 | 1avyadmC4uA.0011.wav|독사의 자식들아 458 | 1avyadmC4uA.0012.wav|누가 너희를 가르쳐 임박한 진노를 피하라 하더냐 459 | 1avyadmC4uA.0013.wav|그러므로 회개에 합당한 열매를 맺고 460 | 1avyadmC4uA.0014.wav|속으로 아브라함이 우리 조상이라고 생각하지 말라 461 | 1avyadmC4uA.0015.wav|내가 너희에게 이르노니 462 | 1avyadmC4uA.0016.wav|하나님이 능히 이 돌들로도 아브라함의 자손이 되게 하시리라 463 | 1avyadmC4uA.0017.wav|이미 도끼가 나무 뿌리에 놓였으니 464 | 1avyadmC4uA.0018.wav|좋은 열매를 맺지 아니하는 나무마다 찍혀 불에 던져지리라 465 | 1avyadmC4uA.0019.wav|나는 너희로 회개하게 하기 위하여 물로 세례를 베풀거니와 466 | 1avyadmC4uA.0020.wav|내 뒤에 오시는 이는 나보다 능력이 많으시니 467 | 1avyadmC4uA.0021.wav|나는 그의 신을 들기도 감당하지 못하겠노라 468 | 1avyadmC4uA.0022.wav|그는 성령과 불로 너희에게 세례를 베푸실 것이요 469 | 1avyadmC4uA.0023.wav|손에 키를 들고 470 | 1avyadmC4uA.0024.wav|자기의 타작 마당을 정하게 하사 471 | 1avyadmC4uA.0025.wav|알곡은 모아 곳간에 들이고 472 | 1avyadmC4uA.0026.wav|쭉정이는 꺼지지 않는 불에 태우시리라 473 | 1avyadmC4uA.0027.wav|이 때에 예수께서 갈릴리로부터 요단 강에 이르러 요한에게 세례를 받으려 하시니 474 | 1avyadmC4uA.0028.wav|요한이 말려 이르되 475 | 1avyadmC4uA.0029.wav|내가 당신에게서 세례를 받아야 할 터인데 당신이 내게로 오시나이까 476 | 1avyadmC4uA.0030.wav|예수께서 대답하여 이르시되 477 | 1avyadmC4uA.0031.wav|이제 허락하라 478 | 1avyadmC4uA.0032.wav|우리가 이와 같이 하여 모든 의를 이루는 것이 합당하니라 하시니 479 | 1avyadmC4uA.0033.wav|이에 요한이 허락하는지라 480 | 1avyadmC4uA.0034.wav|예수께서 세례를 받으시고 곧 물에서 올라오실새 481 | 1avyadmC4uA.0035.wav|하늘이 열리고 하나님의 성령이 비둘기 같이 내려 자기 위에 임하심을 보시더니 482 | 1avyadmC4uA.0036.wav|하늘로부터 소리가 있어 말씀하시되 483 | 1avyadmC4uA.0037.wav|이는 내 사랑하는 아들이요 내 기 484 | FtMmYywcmbM.0000.wav|데살로니가전서 5장 485 | FtMmYywcmbM.0001.wav|형제들아 때와 시기에 관하여는 너희에게 쓸 것이 없음은 486 | FtMmYywcmbM.0002.wav|주의 날이 밤에 도둑 같이 이를 줄을 너희 자신이 자세히 알기 때문이라 487 | FtMmYywcmbM.0003.wav|그들이 평안하다 안전하다 할 그 때에 임신한 여자에게 해산의 고통이 이름과 같이 488 | FtMmYywcmbM.0004.wav|멸망이 갑자기 그들에게 이르리니 결코 피하지 못하리라 489 | FtMmYywcmbM.0005.wav|형제들아 490 | FtMmYywcmbM.0006.wav|너희는 어둠에 있지 아니하매 그 날이 도둑 같이 너희에게 임하지 못하리니 491 | FtMmYywcmbM.0007.wav|너희는 다 빛의 아들이요 낮의 아들이라 492 | FtMmYywcmbM.0008.wav|우리가 밤이나 어둠에 속하지 아니하나니 493 | FtMmYywcmbM.0009.wav|그러므로 우리는 다른 이들과 같이 자지 말고 494 | FtMmYywcmbM.0010.wav|오직 깨어 정신을 차릴지라 495 | FtMmYywcmbM.0011.wav|자는 자들은 밤에 자고 취하는 자들은 밤에 취하되 496 | FtMmYywcmbM.0012.wav|우리는 낮에 속하였으니 정신을 차리고 믿음과 사랑의 호심경을 붙이고 497 | FtMmYywcmbM.0013.wav|구원의 소망의 투구를 쓰자 498 | FtMmYywcmbM.0014.wav|하나님이 우리를 세우심은 노하심에 이르게 하심이 아니요 499 | FtMmYywcmbM.0015.wav|오직 우리 주 예수 그리스도로 말미암아 구원을 받게 하심이라 500 | FtMmYywcmbM.0016.wav|예수께서 우리를 위하여 죽으사 우리로 하여금 깨어 있든지 자든지 자기와 함께 살게 하려 하셨느니라 501 | FtMmYywcmbM.0017.wav|그러므로 피차 권면하고 서로 덕을 세우기를 너희가 하는 것 같이 하라 502 | FtMmYywcmbM.0018.wav|형제들아 503 | FtMmYywcmbM.0019.wav|우리가 너희에게 구하노니 너희 가운데서 수고하고 주 안에서 너희를 다스리며 권하는 자들을 너희가 알고 504 | FtMmYywcmbM.0020.wav|그들의 역사로 말미암아 사랑 안에서 가장 귀히 여기며 너희끼리 화목하라 505 | FtMmYywcmbM.0021.wav|또 형제들아 너희를 권면하노니 506 | FtMmYywcmbM.0022.wav|게으른 자들을 권계하며 마음이 약한 자들을 격려하고 힘이 없는 자들을 붙들어 주며 507 | FtMmYywcmbM.0023.wav|모든 사람에게 오래 참으라 508 | FtMmYywcmbM.0024.wav|삼가 누가 누구에게든지 509 | FtMmYywcmbM.0025.wav|악으로 악을 갚지 말게 하고 510 | FtMmYywcmbM.0026.wav|서로 대하든지 모든 사람을 대하든지 항상 선을 따르라 511 | FtMmYywcmbM.0027.wav|항상 기뻐하라 512 | FtMmYywcmbM.0028.wav|쉬지 말고 기도하라 범사에 감사하라 513 | FtMmYywcmbM.0029.wav|이것이 그리스도 예수 안에서 너희를 향하신 하나님의 뜻이니라 514 | FtMmYywcmbM.0030.wav|성령을 소멸하지 말며 예언을 멸시하지 말고 515 | FtMmYywcmbM.0031.wav|범사에 헤아려 좋은 것을 취하고 516 | FtMmYywcmbM.0032.wav|악은 어떤 모양이라도 버리라 517 | FtMmYywcmbM.0033.wav|평강의 하나님이 친히 너희를 온전히 거룩하게 하시고 518 | FtMmYywcmbM.0034.wav|또 너희의 온 영과 혼과 몸이 519 | FtMmYywcmbM.0035.wav|우리 주 예수 그리스도께서 강림하실 때에 흠 없게 보전되기를 원하노라 520 | FtMmYywcmbM.0036.wav|너희를 부르시는 이는 미쁘시니 그가 또한 이루시리라 521 | FtMmYywcmbM.0037.wav|형제들아 우리를 위하여 기도하라 522 | FtMmYywcmbM.0038.wav|거룩하게 입맞춤으로 모든 형제에게 문안하라 523 | FtMmYywcmbM.0039.wav|내가 주를 힘입어 너희를 명하노니 524 | FtMmYywcmbM.0040.wav|모든 형제에게 이 편지를 읽어 주라 525 | s7cWt1cZrq8.0000.wav|갈라디아서 5장 526 | s7cWt1cZrq8.0001.wav|그리스도께서 우리를 자유롭게 하려고 자유를 주셨으니 그러므로 굳건하게 서서 다시는 종의 멍에를 메지 말라 527 | s7cWt1cZrq8.0002.wav|보라 나 바울은 너희에게 말하노니 528 | s7cWt1cZrq8.0003.wav|너희가 만일 할례를 받으면 529 | s7cWt1cZrq8.0004.wav|그리스도께서 너희에게 아무 유익이 없으리라 530 | s7cWt1cZrq8.0005.wav|내가 할례를 받는 각 사람에게 다시 증언하노니 531 | s7cWt1cZrq8.0006.wav|그는 율법 전체를 행할 의무를 가진 자라 532 | s7cWt1cZrq8.0007.wav|율법 안에서 의롭다 함을 얻으려 하는 너희는 533 | s7cWt1cZrq8.0008.wav|그리스도에게서 끊어지고 은혜에서 떨어진 자로다 534 | s7cWt1cZrq8.0009.wav|우리가 성령으로 믿음을 따라 의의 소망을 기다리노니 535 | s7cWt1cZrq8.0010.wav|그리스도 예수 안에서는 할례나 무할례나 효력이 없으되 536 | s7cWt1cZrq8.0011.wav|사랑으로써 역사하는 믿음뿐이니라 537 | s7cWt1cZrq8.0012.wav|너희가 달음질을 잘 하더니 누가 너희를 막아 진리를 순종하지 못하게 하더냐 538 | s7cWt1cZrq8.0013.wav|그 권면은 너희를 부르신 이에게서 난 것이 아니니라 539 | s7cWt1cZrq8.0014.wav|적은 누룩이 온 덩이에 퍼지느니라 나는 너희가 아무 다른 마음을 품지 아니할 줄을 주 안에서 확신하노라 540 | s7cWt1cZrq8.0015.wav|그러나 너희를 요동하게 하는 자는 누구든지 심판을 받으리라 541 | s7cWt1cZrq8.0016.wav|형제들아 542 | s7cWt1cZrq8.0017.wav|내가 지금까지 할례를 전한다면 어찌하여 지금까지 박해를 받으리요 543 | s7cWt1cZrq8.0018.wav|그리하였으면 십자가의 걸림돌이 제거되었으리니 544 | s7cWt1cZrq8.0019.wav|너희를 어지럽게 하는 자들은 스스로 베어 버리기를 원하노라 545 | s7cWt1cZrq8.0020.wav|형제들아 546 | s7cWt1cZrq8.0021.wav|너희가 자유를 위하여 부르심을 입었으나 547 | s7cWt1cZrq8.0022.wav|그러나 그 자유로 육체의 기회를 삼지 말고 오직 사랑으로 서로 종 노릇 하라 548 | s7cWt1cZrq8.0023.wav|온 율법은 네 이웃 사랑하기를 네 자신 같이 하라 하신 한 말씀에서 이루어졌나니 549 | s7cWt1cZrq8.0024.wav|만일 서로 물고 먹으면 피차 멸망할까 조심하라 550 | s7cWt1cZrq8.0025.wav|내가 이르노니 551 | s7cWt1cZrq8.0026.wav|너희는 성령을 따라 행하라 552 | s7cWt1cZrq8.0027.wav|그리하면 육체의 욕심을 이루지 아니하리라 육체의 소욕은 성령을 거스르고 성령은 육체를 거스르나니 553 | s7cWt1cZrq8.0028.wav|이 둘이 서로 대적함으로 너희가 원하는 것을 하지 못하게 하려 함이니라 554 | s7cWt1cZrq8.0029.wav|너희가 만일 성령의 인도하시는 바가 되면 율법 아래에 있지 아니하리라 555 | s7cWt1cZrq8.0030.wav|육체의 일은 분명하니 곧 음행과 더러운 것과 556 | s7cWt1cZrq8.0031.wav|호색과 우상 숭배와 주술과 원수 맺는 것과 557 | s7cWt1cZrq8.0032.wav|분쟁과 시기와 분냄과 당 짓는 것과 558 | s7cWt1cZrq8.0033.wav|분열함과 이단과 559 | s7cWt1cZrq8.0034.wav|투기와 술 취함과 560 | s7cWt1cZrq8.0035.wav|방탕함과 또 그와 같은 것들이라 561 | s7cWt1cZrq8.0036.wav|전에 너희에게 경계한 것 같이 경계하노니 562 | s7cWt1cZrq8.0037.wav|이런 일을 하는 자들은 하나님의 나라를 유업으로 받지 못할 것이요 563 | s7cWt1cZrq8.0038.wav|오직 성령의 열매는 사랑과 희락과 화평과 오래 참음과 자비와 양선과 충성과 564 | s7cWt1cZrq8.0039.wav|온유와 절제니 565 | s7cWt1cZrq8.0040.wav|이같은 것을 금지할 법이 없느니라 566 | s7cWt1cZrq8.0041.wav|그리스도 예수의 사람들은 육체와 함께 그 정욕과 탐심을 십자가에 못 박았느니라 567 | s7cWt1cZrq8.0042.wav|만일 우리가 성령으로 살면 또한 성령으로 행할지니 568 | s7cWt1cZrq8.0043.wav|헛된 영광을 구하여 서로 노엽게 하거나 서로 투 569 | edzZfNKvvMs.0000.wav|빌립보서 3장 570 | edzZfNKvvMs.0001.wav|끝으로 나의 형제들아 주 안에서 기뻐하라 571 | edzZfNKvvMs.0002.wav|너희에게 같은 말을 쓰는 것이 내게는 수고로움이 없고 너희에게는 안전하니라 572 | edzZfNKvvMs.0003.wav|개들을 삼가고 행악하는 자들을 삼가고 몸을 상해하는 일을 삼가라 573 | edzZfNKvvMs.0004.wav|하나님의 성령으로 봉사하며 574 | edzZfNKvvMs.0005.wav|그리스도 예수로 자랑하고 575 | edzZfNKvvMs.0006.wav|육체를 신뢰하지 아니하는 우리가 곧 할례파라 576 | edzZfNKvvMs.0007.wav|그러나 나도 육체를 신뢰할 만하며 만일 누구든지 다른 이가 육체를 신뢰할 것이 있는 줄로 생각하면 나는 더욱 그러하리니 577 | edzZfNKvvMs.0008.wav|나는 팔일 만에 할례를 받고 이스라엘 족속이요 베냐민 지파요 578 | edzZfNKvvMs.0009.wav|히브리인 중의 히브리인이요 율법으로는 바리새인이요 579 | edzZfNKvvMs.0010.wav|열심으로는 교회를 박해하고 율법의 의로는 흠이 없는 자라 580 | edzZfNKvvMs.0011.wav|그러나 무엇이든지 내게 유익하던 것을 내가 그리스도를 위하여 다 해로 여길뿐더러 581 | edzZfNKvvMs.0012.wav|또한 모든 것을 해로 여김은 582 | edzZfNKvvMs.0013.wav|내 주 그리스도 예수를 아는 지식이 가장 고상하기 때문이라 583 | edzZfNKvvMs.0014.wav|내가 그를 위하여 모든 것을 잃어버리고 배설물로 여김은 584 | edzZfNKvvMs.0015.wav|그리스도를 얻고 585 | edzZfNKvvMs.0016.wav|그 안에서 발견되려 함이니 586 | edzZfNKvvMs.0017.wav|내가 가진 의는 율법에서 난 것이 아니요 587 | edzZfNKvvMs.0018.wav|오직 그리스도를 믿음으로 말미암은 것이니 588 | edzZfNKvvMs.0019.wav|곧 믿음으로 하나님께로부터 난 의라 589 | edzZfNKvvMs.0020.wav|내가 그리스도와 그 부활의 권능과 590 | edzZfNKvvMs.0021.wav|그 고난에 참여함을 알고자 하여 그의 죽으심을 본받아 591 | edzZfNKvvMs.0022.wav|어떻게 해서든지 죽은 자 가운데서 부활에 이르려 하노니 592 | edzZfNKvvMs.0023.wav|내가 이미 얻었다 함도 아니요 온전히 이루었다 함도 아니라 593 | edzZfNKvvMs.0024.wav|오직 내가 그리스도 예수께 잡힌 바 된 그것을 잡으려고 달려가노라 594 | edzZfNKvvMs.0025.wav|형제들아 595 | edzZfNKvvMs.0026.wav|나는 아직 내가 잡은 줄로 여기지 아니하고 오직 한 일 즉 뒤에 있는 것은 잊어버리고 앞에 있는 것을 잡으려고 푯대를 향하여 그리스도 예수 안에서 596 | edzZfNKvvMs.0027.wav|하나님이 위에서 부르신 부름의 상을 위하여 달려가노라 597 | edzZfNKvvMs.0028.wav|그러므로 누구든지 우리 온전히 이룬 자들은 598 | edzZfNKvvMs.0029.wav|이렇게 생각할지니 599 | edzZfNKvvMs.0030.wav|만일 어떤 일에 너희가 달리 생각하면 하나님이 이것도 너희에게 나타내시리라 600 | edzZfNKvvMs.0031.wav|오직 우리가 어디까지 이르렀든지 그대로 행할 것이라 601 | edzZfNKvvMs.0032.wav|형제들아 602 | edzZfNKvvMs.0033.wav|너희는 함께 나를 본받으라 603 | edzZfNKvvMs.0034.wav|그리고 너희가 우리를 본받은 것처럼 그와 같이 행하는 자들을 눈여겨 보라 604 | edzZfNKvvMs.0035.wav|내가 여러 번 너희에게 말하였거니와 605 | edzZfNKvvMs.0036.wav|이제도 눈물을 흘리며 말하노니 606 | edzZfNKvvMs.0037.wav|여러 사람들이 그리스도의 십자가의 원수로 행하느니라 607 | edzZfNKvvMs.0038.wav|그들의 마침은 멸망이요 그들의 신은 배요 608 | edzZfNKvvMs.0039.wav|그 영광은 그들의 부끄러움에 있고 609 | edzZfNKvvMs.0040.wav|땅의 일을 생각하는 자라 610 | edzZfNKvvMs.0041.wav|그러나 우리의 시민권은 하늘에 있는지라 611 | edzZfNKvvMs.0042.wav|거기로부터 구원하는 자 곧 주 예수 그리스도를 기다리노니 612 | edzZfNKvvMs.0043.wav|그는 만물을 자기에게 복종하게 하실 수 있는 자의 역사로 613 | edzZfNKvvMs.0044.wav|우리의 낮은 몸을 자기 영광의 몸의 형체와 같이 614 | rxiP_jY5nEI.0000.wav|갈라디아서 1장 615 | rxiP_jY5nEI.0001.wav|사람들에게서 난 것도 아니요 사람으로 말미암은 것도 아니요 616 | rxiP_jY5nEI.0002.wav|오직 예수 그리스도와 그를 죽은 자 가운데서 살리신 하나님 아버지로 말미암아 사도 된 바울은 617 | rxiP_jY5nEI.0003.wav|함께 있는 모든 형제와 더불어 갈라디아 여러 교회들에게 618 | rxiP_jY5nEI.0004.wav|우리 하나님 아버지와 주 예수 그리스도로부터 619 | rxiP_jY5nEI.0005.wav|은혜와 평강이 있기를 원하노라 620 | rxiP_jY5nEI.0006.wav|그리스도께서 하나님 곧 우리 아버지의 뜻을 따라 이 악한 세대에서 우리를 건지시려고 우리 죄를 대속하기 위하여 자기 몸을 주셨으니 621 | rxiP_jY5nEI.0007.wav|영광이 그에게 세세토록 있을지어다 아멘 622 | rxiP_jY5nEI.0008.wav|그리스도의 은혜로 너희를 부르신 이를 이같이 속히 떠나 623 | rxiP_jY5nEI.0009.wav|다른 복음을 따르는 것을 내가 이상하게 여기노라 624 | rxiP_jY5nEI.0010.wav|다른 복음은 없나니 다만 어떤 사람들이 너희를 교란하여 625 | rxiP_jY5nEI.0011.wav|그리스도의 복음을 변하게 하려 함이라 626 | rxiP_jY5nEI.0012.wav|그러나 우리나 혹은 하늘로부터 온 천사라도 627 | rxiP_jY5nEI.0013.wav|우리가 너희에게 전한 복음 외에 다른 복음을 전하면 저주를 받을지어다 628 | rxiP_jY5nEI.0014.wav|우리가 전에 말하였거니와 629 | rxiP_jY5nEI.0015.wav|내가 지금 다시 말하노니 630 | rxiP_jY5nEI.0016.wav|만일 누구든지 너희가 받은 것 외에 다른 복음을 전하면 저주를 받을지어다 631 | rxiP_jY5nEI.0017.wav|이제 내가 사람들에게 좋게 하랴 632 | rxiP_jY5nEI.0018.wav|하나님께 좋게 하랴 633 | rxiP_jY5nEI.0019.wav|사람들에게 기쁨을 구하랴 634 | rxiP_jY5nEI.0020.wav|내가 지금까지 사람들의 기쁨을 구하였다면 635 | rxiP_jY5nEI.0021.wav|그리스도의 종이 아니니라 636 | rxiP_jY5nEI.0022.wav|형제들아 637 | rxiP_jY5nEI.0023.wav|내가 너희에게 알게 하노니 638 | rxiP_jY5nEI.0024.wav|내가 전한 복음은 사람의 뜻을 따라 된 것이 아니니라 639 | rxiP_jY5nEI.0025.wav|이는 내가 사람에게서 받은 것도 아니요 640 | rxiP_jY5nEI.0026.wav|배운 것도 아니요 641 | rxiP_jY5nEI.0027.wav|오직 예수 그리스도의 계시로 말미암은 것이라 642 | rxiP_jY5nEI.0028.wav|내가 이전에 유대교에 있을 때에 행한 일을 너희가 들었거니와 643 | rxiP_jY5nEI.0029.wav|하나님의 교회를 심히 박해하여 멸하고 644 | rxiP_jY5nEI.0030.wav|내가 내 동족 중 여러 연갑자보다 유대교를 지나치게 믿어 645 | rxiP_jY5nEI.0031.wav|내 조상의 전통에 대하여 더욱 열심이 있었으나 646 | rxiP_jY5nEI.0032.wav|그러나 내 어머니의 태로부터 나를 택정하시고 647 | rxiP_jY5nEI.0033.wav|그의 은혜로 나를 부르신 이가 648 | rxiP_jY5nEI.0034.wav|그의 아들을 이방에 전하기 위하여 그를 내 속에 나타내시기를 기뻐하셨을 때에 649 | rxiP_jY5nEI.0035.wav|내가 곧 혈육과 의논하지 아니하고 650 | rxiP_jY5nEI.0036.wav|또 나보다 먼저 사도 된 자들을 만나려고 예루살렘으로 가지 아니하고 651 | rxiP_jY5nEI.0037.wav|아라비아로 갔다가 다시 다메섹으로 돌아갔노라 652 | rxiP_jY5nEI.0038.wav|그 후 삼 년 만에 내가 게바를 방문하려고 예루살렘에 올라가서 653 | rxiP_jY5nEI.0039.wav|그와 함께 십오일을 머무는 동안 654 | rxiP_jY5nEI.0040.wav|주의 형제 야고보 외에 다른 사도들을 보지 못하였노라 655 | rxiP_jY5nEI.0041.wav|보라 656 | rxiP_jY5nEI.0042.wav|내가 너희에게 쓰는 것은 하나님 앞에서 거짓말이 아니로다 657 | rxiP_jY5nEI.0043.wav|그 후에 내가 수리아와 길리기아 지방에 이르렀으나 658 | rxiP_jY5nEI.0044.wav|그리스도 안에 있는 유대의 교회들이 나를 얼굴로는 알지 못하고 659 | rxiP_jY5nEI.0045.wav|다만 우리를 박해하던 자가 전에 멸하려던 그 믿음을 지금 전한다 함을 듣고 660 | _nwrrC0xUGs.0000.wav|골로새서 1장 661 | _nwrrC0xUGs.0001.wav|하나님의 뜻으로 말미암아 그리스도 예수의 사도 된 바울과 형제 디모데는 662 | _nwrrC0xUGs.0002.wav|골로새에 있는 성도들 곧 그리스도 안에서 신실한 형제들에게 편지하노니 663 | _nwrrC0xUGs.0003.wav|우리 아버지 하나님으로부터 은혜와 평강이 너희에게 있을지어다 664 | _nwrrC0xUGs.0004.wav|우리가 너희를 위하여 기도할 때마다 하나님 곧 우리 주 예수 그리스도의 아버지께 감사하노라 665 | _nwrrC0xUGs.0005.wav|이는 그리스도 예수 안에 너희의 믿음과 모든 성도에 대한 사랑을 들었음이요 666 | _nwrrC0xUGs.0006.wav|너희를 위하여 하늘에 쌓아 둔 소망으로 말미암음이니 667 | _nwrrC0xUGs.0007.wav|곧 너희가 전에 복음 진리의 말씀을 들은 것이라 668 | _nwrrC0xUGs.0008.wav|이 복음이 이미 너희에게 이르매 669 | _nwrrC0xUGs.0009.wav|너희가 듣고 참으로 하나님의 은혜를 깨달은 날부터 너희 중에서와 같이 또한 온 천하에서도 열매를 맺어 자라는도다 670 | _nwrrC0xUGs.0010.wav|이와 같이 우리와 함께 종 된 사랑하는 에바브라에게 671 | _nwrrC0xUGs.0011.wav|너희가 배웠나니 672 | _nwrrC0xUGs.0012.wav|그는 너희를 위한 그리스도의 신실한 일꾼이요 673 | _nwrrC0xUGs.0013.wav|성령 안에서 너희 사랑을 우리에게 알린 자니라 674 | _nwrrC0xUGs.0014.wav|이로써 우리도 듣던 날부터 너희를 위하여 기도하기를 그치지 아니하고 구하노니 675 | _nwrrC0xUGs.0015.wav|너희로 하여금 모든 신령한 지혜와 총명에 하나님의 뜻을 아는 것으로 채우게 하시고 676 | _nwrrC0xUGs.0016.wav|주께 합당하게 행하여 범사에 기쁘시게 하고 677 | _nwrrC0xUGs.0017.wav|모든 선한 일에 열매를 맺게 하시며 678 | _nwrrC0xUGs.0018.wav|하나님을 아는 것에 자라게 하시고 679 | _nwrrC0xUGs.0019.wav|그의 영광의 힘을 따라 모든 능력으로 능하게 하시며 680 | _nwrrC0xUGs.0020.wav|기쁨으로 모든 견딤과 오래 참음에 이르게 하시고 681 | _nwrrC0xUGs.0021.wav|우리로 하여금 빛 가운데서 성도의 기업의 부분을 얻기에 합당하게 하신 아버지께 감사하게 하시기를 원하노라 그가 우리를 흑암의 권세에서 건져내사 그의 사랑의 아들의 나라로 옮기셨으니 그 아들 안에서 우리가 속량 곧 죄 사함을 얻었도다 682 | _nwrrC0xUGs.0022.wav|그는 보이지 아니하는 하나님의 형상이시요 모든 피조물보다 먼저 나신 이시니 683 | _nwrrC0xUGs.0023.wav|만물이 그에게서 창조되되 684 | _nwrrC0xUGs.0024.wav|하늘과 땅에서 보이는 것들과 보이지 않는 것들과 혹은 왕권들이나 주권들이나 685 | _nwrrC0xUGs.0025.wav|통치자들이나 권세들이나 만물이 다 그로 말미암고 그를 위하여 창조되었고 686 | _nwrrC0xUGs.0026.wav|또한 그가 만물보다 먼저 계시고 만물이 그 안에 함께 섰느니라 687 | _nwrrC0xUGs.0027.wav|그는 몸인 교회의 머리시라 688 | _nwrrC0xUGs.0028.wav|그가 근본이시요 죽은 자들 가운데서 먼저 나신 이시니 689 | _nwrrC0xUGs.0029.wav|이는 친히 만물의 으뜸이 되려 하심이요 690 | _nwrrC0xUGs.0030.wav|아버지께서는 모든 충만으로 예수 안에 거하게 하시고 691 | _nwrrC0xUGs.0031.wav|그의 십자가의 피로 화평을 이루사 만물 곧 땅에 있는 것들이나 하늘에 있는 것들이 692 | _nwrrC0xUGs.0032.wav|그로 말미암아 자기와 화목하게 되기를 기뻐하심이라 693 | _nwrrC0xUGs.0033.wav|전에 악한 행실로 멀리 떠나 마음으로 원수가 되었던 너희를 이제는 그의 육체의 죽음으로 말미암아 화목하게 하사 694 | _nwrrC0xUGs.0034.wav|너희를 거룩하고 흠 없고 책망할 것이 없는 자로 그 앞에 세우고자 하셨으니 695 | _nwrrC0xUGs.0035.wav|만일 너희가 믿음에 거하고 터 위에 굳게 서서 696 | _nwrrC0xUGs.0036.wav|너희 들은 바 복음의 소망에서 흔들리지 아니하면 그리하리라 697 | _nwrrC0xUGs.0037.wav|이 복음은 천하 만민에게 전파된 바요 나 바울은 이 복음의 일꾼이 되었노라 나는 이제 너희를 위하여 받는 괴로움을 기뻐하고 698 | _nwrrC0xUGs.0038.wav|그리스도의 남은 고난을 그의 몸된 교회를 위하여 내 육체에 채우노라 699 | _nwrrC0xUGs.0039.wav|내가 교회의 일꾼 된 것은 하나님이 너희를 위하여 내게 주신 직분을 따라 하나님의 말씀을 이루려 함이니라 700 | _nwrrC0xUGs.0040.wav|이 비밀은 만세와 만대로부터 감추어졌던 것인데 701 | _nwrrC0xUGs.0041.wav|이제는 그의 성도들에게 나타났고 702 | _nwrrC0xUGs.0042.wav|하나님이 그들로 하여금 이 비밀의 영광이 이방인 가운데 얼마나 풍성한지를 알게 하려 하심이라 703 | _nwrrC0xUGs.0043.wav|이 비밀은 너희 안에 계신 그리스도시니 곧 영광의 소망이니라 704 | _nwrrC0xUGs.0044.wav|우리가 그를 전파하여 각 사람을 권하고 705 | _nwrrC0xUGs.0045.wav|모든 지혜로 각 사람을 가르침은 706 | _nwrrC0xUGs.0046.wav|각 사람을 그리스도 안에서 완전한 자로 세우려 함이니 707 | _nwrrC0xUGs.0047.wav|이를 위하여 나도 내 속에서 능력으로 역사하시는 이의 역사를 따라 708 | bNxsYZgqMnQ.0000.wav|에베소서 5장 709 | bNxsYZgqMnQ.0001.wav|그러므로 사랑을 받는 자녀 같이 너희는 하나님을 본받는 자가 되고 710 | bNxsYZgqMnQ.0002.wav|그리스도께서 너희를 사랑하신 것 같이 너희도 사랑 가운데서 행하라 711 | bNxsYZgqMnQ.0003.wav|그는 우리를 위하여 자신을 버리사 향기로운 제물과 희생제물로 하나님께 드리셨느니라 712 | bNxsYZgqMnQ.0004.wav|음행과 온갖 더러운 것과 713 | bNxsYZgqMnQ.0005.wav|탐욕은 너희 중에서 그 이름조차도 부르지 말라 714 | bNxsYZgqMnQ.0006.wav|이는 성도에게 마땅한 바니라 715 | bNxsYZgqMnQ.0007.wav|누추함과 어리석은 말이나 716 | bNxsYZgqMnQ.0008.wav|희롱의 말이 마땅치 아니하니 오히려 감사하는 말을 하라 717 | bNxsYZgqMnQ.0009.wav|너희도 정녕 이것을 알거니와 음행하는 자나 더러운 자나 탐하는 자 곧 우상 숭배자는 다 그리스도와 하나님의 나라에서 기업을 얻지 못하리니 718 | bNxsYZgqMnQ.0010.wav|누구든지 헛된 말로 너희를 속이지 못하게 하라 719 | bNxsYZgqMnQ.0011.wav|이로 말미암아 하나님의 진노가 720 | bNxsYZgqMnQ.0012.wav|불순종의 아들들에게 임하나니 721 | bNxsYZgqMnQ.0013.wav|그러므로 그들과 함께 하는 자가 되지 말라 722 | bNxsYZgqMnQ.0014.wav|너희가 전에는 어둠이더니 이제는 주 안에서 빛이라 723 | bNxsYZgqMnQ.0015.wav|빛의 자녀들처럼 행하라 724 | bNxsYZgqMnQ.0016.wav|빛의 열매는 모든 착함과 의로움과 진실함에 있느니라 725 | bNxsYZgqMnQ.0017.wav|주를 기쁘시게 할 것이 무엇인가 시험하여 보라 726 | bNxsYZgqMnQ.0018.wav|너희는 열매 없는 어둠의 일에 참여하지 말고 도리어 책망하라 727 | bNxsYZgqMnQ.0019.wav|그들이 은밀히 행하는 것들은 말하기도 부끄러운 것들이라 728 | bNxsYZgqMnQ.0020.wav|그러나 책망을 받는 모든 것은 빛으로 말미암아 드러나나니 729 | bNxsYZgqMnQ.0021.wav|드러나는 것마다 빛이니라 730 | bNxsYZgqMnQ.0022.wav|그러므로 이르시기를 잠자는 자여 깨어서 죽은 자들 가운데서 일어나라 731 | bNxsYZgqMnQ.0023.wav|그리스도께서 너에게 비추이시리라 하셨느니라 732 | bNxsYZgqMnQ.0024.wav|그런즉 너희가 어떻게 행할지를 자세히 주의하여 지혜 없는 자 같이 하지 말고 오직 지혜 있는 자 같이 하여 733 | bNxsYZgqMnQ.0025.wav|세월을 아끼라 때가 악하니라 734 | bNxsYZgqMnQ.0026.wav|그러므로 어리석은 자가 되지 말고 오직 주의 뜻이 무엇인가 이해하라 735 | bNxsYZgqMnQ.0027.wav|술 취하지 말라 736 | bNxsYZgqMnQ.0028.wav|이는 방탕한 것이니 오직 성령으로 충만함을 받으라 737 | bNxsYZgqMnQ.0029.wav|시와 찬송과 신령한 노래들로 서로 화답하며 738 | bNxsYZgqMnQ.0030.wav|너희의 마음으로 주께 노래하며 찬송하며 739 | bNxsYZgqMnQ.0031.wav|범사에 우리 주 예수 그리스도의 이름으로 항상 아버지 하나님께 감사하며 740 | bNxsYZgqMnQ.0032.wav|그리스도를 경외함으로 피차 복종하라 741 | bNxsYZgqMnQ.0033.wav|아내들이여 자기 남편에게 복종하기를 주께 하듯 하라 742 | bNxsYZgqMnQ.0034.wav|이는 남편이 아내의 머리 됨이 743 | bNxsYZgqMnQ.0035.wav|그리스도께서 교회의 머리 됨과 같음이니 744 | bNxsYZgqMnQ.0036.wav|그가 바로 몸의 구주시니라 745 | bNxsYZgqMnQ.0037.wav|그러므로 교회가 그리스도에게 하듯 아내들도 범사에 자기 남편에게 복종할지니라 746 | bNxsYZgqMnQ.0038.wav|남편들아 아내 사랑하기를 그리스도께서 교회를 사랑하시고 747 | bNxsYZgqMnQ.0039.wav|그 교회를 위하여 자신을 주심 같이 하라 748 | bNxsYZgqMnQ.0040.wav|이는 곧 물로 씻어 말씀으로 깨끗하게 하사 거룩하게 하시고 749 | bNxsYZgqMnQ.0041.wav|자기 앞에 영광스러운 교회로 세우사 750 | bNxsYZgqMnQ.0042.wav|티나 주름 잡힌 것이나 이런 것들이 없이 거룩하고 흠이 없게 하려 하심이라 751 | bNxsYZgqMnQ.0043.wav|이와 같이 남편들도 자기 아내 사랑하기를 자기 자신과 같이 할지니 752 | bNxsYZgqMnQ.0044.wav|자기 아내를 사랑하는 자는 자기를 사랑하는 것이라 753 | bNxsYZgqMnQ.0045.wav|누구든지 언제나 자기 육체를 미워하지 않고 오직 양육하여 보호하기를 754 | bNxsYZgqMnQ.0046.wav|그리스도께서 교회에게 함과 같이 하나니 755 | bNxsYZgqMnQ.0047.wav|우리는 그 몸의 지체임이라 756 | bNxsYZgqMnQ.0048.wav|그러므로 사람이 부모를 떠나 그의 아내와 합하여 그 둘이 한 육체가 될지니 757 | bNxsYZgqMnQ.0050.wav|나는 그리스도와 교회에 대하여 말하노라 758 | bNxsYZgqMnQ.0051.wav|그러나 너희도 각각 자기의 아내 사랑하기를 자신 같이 하고 759 | bNxsYZgqMnQ.0049.wav|이 비밀이 크도다 760 | P5T9pYeTq0Y.0000.wav|빌립보서 2장 761 | P5T9pYeTq0Y.0001.wav|그러므로 그리스도 안에 무슨 권면이나 사랑의 무슨 위로나 성령의 무슨 교제나 긍휼이나 자비가 있거든 762 | P5T9pYeTq0Y.0002.wav|마음을 같이하여 같은 사랑을 가지고 뜻을 합하며 한마음을 품어 763 | P5T9pYeTq0Y.0003.wav|아무 일에든지 다툼이나 허영으로 하지 말고 764 | P5T9pYeTq0Y.0004.wav|오직 겸손한 마음으로 각각 자기보다 남을 낫게 여기고 765 | P5T9pYeTq0Y.0005.wav|각각 자기 일을 돌볼뿐더러 또한 각각 다른 사람들의 일을 돌보아 766 | P5T9pYeTq0Y.0006.wav|나의 기쁨을 충만하게 하라 767 | P5T9pYeTq0Y.0007.wav|너희 안에 이 마음을 품으라 곧 그리스도 예수의 마음이니 768 | P5T9pYeTq0Y.0008.wav|그는 근본 하나님의 본체시나 769 | P5T9pYeTq0Y.0009.wav|하나님과 동등됨을 취할 것으로 여기지 아니하시고 770 | P5T9pYeTq0Y.0010.wav|오히려 자기를 비워 종의 형체를 가지사 사람들과 같이 되셨고 771 | P5T9pYeTq0Y.0011.wav|사람의 모양으로 나타나사 자기를 낮추시고 772 | P5T9pYeTq0Y.0012.wav|죽기까지 복종하셨으니 773 | P5T9pYeTq0Y.0013.wav|곧 십자가에 죽으심이라 774 | P5T9pYeTq0Y.0014.wav|이러므로 하나님이 그를 지극히 높여 모든 이름 위에 뛰어난 이름을 주사 775 | P5T9pYeTq0Y.0015.wav|하늘에 있는 자들과 땅에 있는 자들과 776 | P5T9pYeTq0Y.0016.wav|땅 아래에 있는 자들로 모든 무릎을 예수의 이름에 꿇게 하시고 777 | P5T9pYeTq0Y.0017.wav|모든 입으로 예수 그리스도를 주라 시인하여 778 | P5T9pYeTq0Y.0018.wav|하나님 아버지께 영광을 돌리게 하셨느니라 779 | P5T9pYeTq0Y.0019.wav|그러므로 나의 사랑하는 자들아 780 | P5T9pYeTq0Y.0020.wav|그러므로 나의 사랑하는 자들아 너희가 나 있을 때뿐 아니라 더욱 지금 나 없을 때에도 항상 복종하여 두렵고 떨림으로 너희 구원을 이루라 781 | P5T9pYeTq0Y.0021.wav|너희 안에서 행하시는 이는 하나님이시니 782 | P5T9pYeTq0Y.0022.wav|자기의 기쁘신 뜻을 위하여 너희에게 소원을 두고 행하게 하시나니 783 | P5T9pYeTq0Y.0023.wav|모든 일을 원망과 시비가 없이 하라 784 | P5T9pYeTq0Y.0024.wav|이는 너희가 흠이 없고 순전하여 어그러지고 거스르는 세대 가운데서 785 | P5T9pYeTq0Y.0025.wav|하나님의 흠 없는 자녀로 세상에서 그들 가운데 빛들로 나타내며 786 | P5T9pYeTq0Y.0026.wav|생명의 말씀을 밝혀 나의 달음질이 헛되지 아니하고 수고도 헛되지 아니함으로 787 | P5T9pYeTq0Y.0027.wav|그리스도의 날에 내가 자랑할 것이 있게 하려 함이라 788 | P5T9pYeTq0Y.0028.wav|만일 너희 믿음의 제물과 섬김 위에 내가 나를 전제로 드릴지라도 나는 기뻐하고 너희 무리와 함께 기뻐하리니 789 | P5T9pYeTq0Y.0029.wav|이와 같이 너희도 기뻐하고 나와 함께 기뻐하라 790 | P5T9pYeTq0Y.0030.wav|내가 디모데를 속히 너희에게 보내기를 주 안에서 바람은 791 | P5T9pYeTq0Y.0031.wav|너희의 사정을 앎으로 안위를 받으려 함이니 792 | P5T9pYeTq0Y.0032.wav|이는 뜻을 같이하여 너희 사정을 진실히 생각할 자가 이밖에 내게 없음이라 793 | P5T9pYeTq0Y.0033.wav|그들이 다 자기 일을 구하고 그리스도 예수의 일을 구하지 아니하되 794 | P5T9pYeTq0Y.0034.wav|디모데의 연단을 너희가 아나니 795 | P5T9pYeTq0Y.0035.wav|자식이 아버지에게 함같이 796 | P5T9pYeTq0Y.0036.wav|나와 함께 복음을 위하여 수고하였느니라 797 | P5T9pYeTq0Y.0037.wav|그러므로 내가 내 일이 어떻게 될지를 보아서 곧 이 사람을 보내기를 바라고 798 | P5T9pYeTq0Y.0038.wav|나도 속히 가게 될 것을 주 안에서 확신하노라 799 | P5T9pYeTq0Y.0039.wav|그러나 에바브로디도를 너희에게 보내는 것이 필요한 줄로 생각하노니 800 | P5T9pYeTq0Y.0040.wav|그는 나의 형제요 함께 수고하고 함께 군사 된 자요 801 | P5T9pYeTq0Y.0041.wav|너희 사자로 내가 쓸 것을 돕는 자라 802 | P5T9pYeTq0Y.0042.wav|그가 너희 무리를 간절히 사모하고 자기가 병든 것을 너희가 들은 줄을 알고 803 | P5T9pYeTq0Y.0043.wav|심히 근심한지라 804 | P5T9pYeTq0Y.0044.wav|그가 병들어 죽게 되었으나 하나님이 그를 긍휼히 여기셨고 805 | P5T9pYeTq0Y.0045.wav|그뿐 아니라 또 나를 긍휼히 여기사 806 | P5T9pYeTq0Y.0046.wav|내 근심 위에 근심을 면하게 하셨느니라 807 | P5T9pYeTq0Y.0047.wav|그러므로 내가 더욱 급히 그를 보낸 것은 808 | P5T9pYeTq0Y.0048.wav|너희로 그를 다시 보고 기뻐하게 하며 내 근심도 덜려 함이니라 809 | P5T9pYeTq0Y.0049.wav|이러므로 너희가 주 안에서 모든 기쁨으로 그를 영접하고 810 | P5T9pYeTq0Y.0050.wav|또 이와 같은 자들을 존귀히 여기라 811 | P5T9pYeTq0Y.0051.wav|그가 그리스도의 일을 위하여 죽기에 이르러도 812 | P5T9pYeTq0Y.0052.wav|자기 목숨을 돌보지 아니한 것은 813 | P5T9pYeTq0Y.0053.wav|나를 섬기는 너희의 일에 814 | r_rEaOVaBvg.0000.wav|마태복음 17장 815 | r_rEaOVaBvg.0001.wav|엿새 후에 예수께서 베드로와 야고보와 그 형제 요한을 데리시고 따로 높은 산에 올라가셨더니 816 | r_rEaOVaBvg.0002.wav|그들 앞에서 변형되사 그 얼굴이 해 같이 빛나며 817 | r_rEaOVaBvg.0003.wav|옷이 빛과 같이 희어졌더라 818 | r_rEaOVaBvg.0004.wav|그 때에 모세와 엘리야가 예수와 더불어 말하는 것이 그들에게 보이거늘 819 | r_rEaOVaBvg.0005.wav|베드로가 예수께 여쭈어 이르되 820 | r_rEaOVaBvg.0006.wav|주여 우리가 여기 있는 것이 좋사오니 만일 주께서 원하시면 내가 여기서 초막 셋을 짓되 821 | r_rEaOVaBvg.0007.wav|하나는 주님을 위하여 하나는 모세를 위하여 하나는 엘리야를 위하여 하리이다 822 | r_rEaOVaBvg.0008.wav|말할 때에 홀연히 빛난 구름이 그들을 덮으며 823 | r_rEaOVaBvg.0009.wav|구름 속에서 소리가 나서 이르시되 824 | r_rEaOVaBvg.0010.wav|이는 내 사랑하는 아들이요 내 기뻐하는 자니 825 | r_rEaOVaBvg.0011.wav|너희는 그의 말을 들으라 하시는지라 826 | r_rEaOVaBvg.0012.wav|제자들이 듣고 엎드려 심히 두려워하니 827 | r_rEaOVaBvg.0013.wav|예수께서 나아와 그들에게 손을 대시며 이르시되 828 | r_rEaOVaBvg.0014.wav|일어나라 두려워하지 말라 하시니 829 | r_rEaOVaBvg.0015.wav|제자들이 눈을 들고 보매 오직 예수 외에는 아무도 보이지 아니하더라 830 | r_rEaOVaBvg.0016.wav|그들이 산에서 내려올 때에 예수께서 명하여 이르시되 831 | r_rEaOVaBvg.0017.wav|인자가 죽은 자 가운데서 살아나기 전에는 본 것을 아무에게도 이르지 말라 하시니 832 | r_rEaOVaBvg.0018.wav|제자들이 물어 이르되 833 | r_rEaOVaBvg.0019.wav|그러면 어찌하여 서기관들이 엘리야가 먼저 와야 하리라 하나이까 834 | r_rEaOVaBvg.0020.wav|예수께서 대답하여 이르시되 835 | r_rEaOVaBvg.0021.wav|엘리야가 과연 먼저 와서 모든 일을 회복하리라 836 | r_rEaOVaBvg.0022.wav|내가 너희에게 말하노니 엘리야가 이미 왔으되 837 | r_rEaOVaBvg.0023.wav|사람들이 알지 못하고 임의로 대우하였도다 838 | r_rEaOVaBvg.0024.wav|인자도 이와 같이 그들에게 고난을 받으리라 하시니 839 | r_rEaOVaBvg.0025.wav|그제서야 제자들이 예수께서 말씀하신 것이 세례 요한인 줄을 깨달으니라 840 | r_rEaOVaBvg.0026.wav|그들이 무리에게 이르매 한 사람이 예수께 와서 꿇어 엎드려 이르되 841 | r_rEaOVaBvg.0027.wav|주여 내 아들을 불쌍히 여기소서 842 | r_rEaOVaBvg.0028.wav|그가 간질로 심히 고생하여 자주 불에도 넘어지며 물에도 넘어지는지라 843 | r_rEaOVaBvg.0029.wav|내가 주의 제자들에게 데리고 왔으나 능히 고치지 못하더이다 844 | r_rEaOVaBvg.0030.wav|예수께서 대답하여 이르시되 믿음이 없고 패역한 세대여 845 | r_rEaOVaBvg.0031.wav|내가 얼마나 너희와 함께 있으며 얼마나 너희에게 참으리요 846 | r_rEaOVaBvg.0032.wav|그를 이리로 데려오라 하시니라 847 | r_rEaOVaBvg.0033.wav|이에 예수께서 꾸짖으시니 귀신이 나가고 아이가 그 때부터 나으니라 848 | r_rEaOVaBvg.0034.wav|이 때에 제자들이 조용히 예수께 나아와 이르되 849 | r_rEaOVaBvg.0035.wav|우리는 어찌하여 쫓아내지 못하였나이까 850 | r_rEaOVaBvg.0036.wav|이르시되 851 | r_rEaOVaBvg.0037.wav|너희 믿음이 작은 까닭이니라 852 | r_rEaOVaBvg.0038.wav|진실로 너희에게 이르노니 만일 너희에게 믿음이 겨자씨 한 알 만큼만 있어도 853 | r_rEaOVaBvg.0039.wav|이 산을 명하여 여기서 저기로 옮겨지라 하면 옮겨질 것이요 854 | r_rEaOVaBvg.0040.wav|또 너희가 못할 것이 없으리라 855 | r_rEaOVaBvg.0041.wav|갈릴리에 모일 때에 예수께서 제자들에게 이르시되 856 | r_rEaOVaBvg.0042.wav|인자가 장차 사람들의 손에 넘겨져 죽임을 당하고 제삼일에 살아나리라 하시니 857 | r_rEaOVaBvg.0043.wav|제자들이 매우 근심하더라 858 | r_rEaOVaBvg.0044.wav|가버나움에 이르니 반 세겔 받는 자들이 베드로에게 나아와 이르되 859 | r_rEaOVaBvg.0045.wav|너의 선생은 반 세겔을 내지 아니하느냐 860 | r_rEaOVaBvg.0046.wav|이르되 내신다 하고 집에 들어가니 861 | r_rEaOVaBvg.0047.wav|예수께서 먼저 이르시되 862 | r_rEaOVaBvg.0048.wav|시몬아 네 생각은 어떠하냐 863 | r_rEaOVaBvg.0049.wav|세상 임금들이 누구에게 관세와 국세를 받느냐 864 | r_rEaOVaBvg.0050.wav|자기 아들에게냐 타인에게냐 865 | r_rEaOVaBvg.0051.wav|베드로가 이르되 866 | r_rEaOVaBvg.0052.wav|타인에게니이다 867 | r_rEaOVaBvg.0053.wav|예수께서 이르시되 그렇다면 아들들은 세를 면하리라 868 | r_rEaOVaBvg.0054.wav|그러나 우리가 그들이 실족하지 않게 하기 위하여 네가 바다에 가서 낚시를 던져 먼저 오르는 고기를 가져 입을 열면 돈 한 세겔을 얻을 것이니 869 | 2EMXWUQ5oKQ.0000.wav|마태복음 16장 870 | 2EMXWUQ5oKQ.0001.wav|바리새인과 사두개인들이 와서 예수를 시험하여 하늘로부터 오는 표적 보이기를 청하니 871 | 2EMXWUQ5oKQ.0002.wav|예수께서 대답하여 이르시되 872 | 2EMXWUQ5oKQ.0003.wav|너희가 저녁에 하늘이 붉으면 날이 좋겠다 하고 873 | 2EMXWUQ5oKQ.0004.wav|아침에 하늘이 붉고 흐리면 오늘은 날이 궂겠다 하나니 874 | 2EMXWUQ5oKQ.0005.wav|너희가 날씨는 분별할 줄 알면서 시대의 표적은 분별할 수 없느냐 875 | 2EMXWUQ5oKQ.0006.wav|악하고 음란한 세대가 표적을 구하나 요나의 표적 밖에는 보여 줄 표적이 없느니라 하시고 그들을 떠나 가시니라 876 | 2EMXWUQ5oKQ.0007.wav|제자들이 건너편으로 갈새 떡 가져가기를 잊었더니 877 | 2EMXWUQ5oKQ.0008.wav|예수께서 이르시되 878 | 2EMXWUQ5oKQ.0009.wav|삼가 바리새인과 사두개인들의 누룩을 주의하라 하시니 879 | 2EMXWUQ5oKQ.0010.wav|제자들이 서로 논의하여 이르되 880 | 2EMXWUQ5oKQ.0011.wav|우리가 떡을 가져오지 아니하였도다 하거늘 881 | 2EMXWUQ5oKQ.0012.wav|예수께서 아시고 이르시되 882 | 2EMXWUQ5oKQ.0013.wav|믿음이 작은 자들아 어찌 떡이 없으므로 서로 논의하느냐 883 | 2EMXWUQ5oKQ.0014.wav|너희가 아직도 깨닫지 못하느냐 884 | 2EMXWUQ5oKQ.0015.wav|떡 다섯 개로 오천 명을 먹이고 주운 것이 몇 바구니며 885 | 2EMXWUQ5oKQ.0016.wav|떡 일곱 개로 사천 명을 먹이고 주운 것이 몇 광주리였는지를 기억하지 못하느냐 886 | 2EMXWUQ5oKQ.0017.wav|어찌 내 말한 것이 떡에 관함이 아닌 줄을 깨닫지 못하느냐 887 | 2EMXWUQ5oKQ.0018.wav|오직 바리새인과 사두개인들의 누룩을 주의하라 하시니 888 | 2EMXWUQ5oKQ.0019.wav|그제서야 제자들이 떡의 누룩이 아니요 889 | 2EMXWUQ5oKQ.0020.wav|바리새인과 사두개인들의 교훈을 삼가라고 말씀하신 줄을 깨달으니라 890 | 2EMXWUQ5oKQ.0021.wav|예수께서 빌립보 가이사랴 지방에 이르러 제자들에게 물어 이르시되 891 | 2EMXWUQ5oKQ.0022.wav|사람들이 인자를 누구라 하느냐 892 | 2EMXWUQ5oKQ.0023.wav|이르되 더러는 세례 요한 더러는 엘리야 893 | 2EMXWUQ5oKQ.0024.wav|어떤 이는 예레미야나 선지자 중의 하나라 하나이다 894 | 2EMXWUQ5oKQ.0025.wav|이르시되 너희는 나를 누구라 하느냐 895 | 2EMXWUQ5oKQ.0026.wav|시몬 베드로가 대답하여 이르되 896 | 2EMXWUQ5oKQ.0027.wav|주는 그리스도시요 살아 계신 하나님의 아들이시니이다 897 | 2EMXWUQ5oKQ.0028.wav|예수께서 대답하여 이르시되 898 | 2EMXWUQ5oKQ.0029.wav|바요나 시몬아 네가 복이 있도다 899 | 2EMXWUQ5oKQ.0030.wav|이를 네게 알게 한 이는 혈육이 아니요 하늘에 계신 내 아버지시니라 900 | 2EMXWUQ5oKQ.0031.wav|또 내가 네게 이르노니 너는 베드로라 901 | 2EMXWUQ5oKQ.0032.wav|내가 이 반석 위에 내 교회를 세우리니 902 | 2EMXWUQ5oKQ.0033.wav|음부의 권세가 이기지 못하리라 903 | 2EMXWUQ5oKQ.0034.wav|내가 천국 열쇠를 네게 주리니 네가 땅에서 무엇이든지 매면 하늘에서도 매일 것이요 904 | 2EMXWUQ5oKQ.0035.wav|네가 땅에서 무엇이든지 풀면 하늘에서도 풀리리라 하시고 905 | 2EMXWUQ5oKQ.0036.wav|이에 제자들에게 경고하사 자기가 그리스도인 것을 아무에게도 이르지 말라 하시니라 906 | 2EMXWUQ5oKQ.0037.wav|이 때로부터 예수 그리스도께서 자기가 예루살렘에 올라가 장로들과 대제사장들과 서기관들에게 많은 고난을 받고 죽임을 당하고 907 | 2EMXWUQ5oKQ.0038.wav|제삼일에 살아나야 할 것을 제자들에게 비로소 나타내시니 908 | 2EMXWUQ5oKQ.0039.wav|베드로가 예수를 붙들고 항변하여 이르되 909 | 2EMXWUQ5oKQ.0040.wav|주여 그리 마옵소서 910 | 2EMXWUQ5oKQ.0041.wav|이 일이 결코 주께 미치지 아니하리이다 911 | 2EMXWUQ5oKQ.0042.wav|예수께서 돌이키시며 베드로에게 이르시되 912 | 2EMXWUQ5oKQ.0043.wav|사탄아 내 뒤로 물러 가라 913 | 2EMXWUQ5oKQ.0044.wav|너는 나를 넘어지게 하는 자로다 914 | 2EMXWUQ5oKQ.0045.wav|네가 하나님의 일을 생각하지 아니하고 915 | 2EMXWUQ5oKQ.0046.wav|도리어 사람의 일을 생각하는도다 하시고 916 | 2EMXWUQ5oKQ.0047.wav|이에 예수께서 제자들에게 이르시되 917 | 2EMXWUQ5oKQ.0048.wav|누구든지 나를 따라오려거든 자기를 부인하고 자기 십자가를 지고 나를 따를 것이니라 918 | 2EMXWUQ5oKQ.0049.wav|누구든지 제 목숨을 구원하고자 하면 잃을 것이요 919 | 2EMXWUQ5oKQ.0050.wav|누구든지 나를 위하여 제 목숨을 잃으면 찾으리라 920 | 2EMXWUQ5oKQ.0051.wav|사람이 만일 온 천하를 얻고도 제 목숨을 잃으면 무엇이 유익하리요 921 | 2EMXWUQ5oKQ.0052.wav|사람이 무엇을 주고 제 목숨과 바꾸겠느냐 922 | 2EMXWUQ5oKQ.0053.wav|인자가 아버지의 영광으로 그 천사들과 함께 오리니 923 | 2EMXWUQ5oKQ.0054.wav|그 때에 각 사람이 행한 대로 갚으리라 924 | 2EMXWUQ5oKQ.0055.wav|진실로 너희에게 이르노니 여기 서 있는 사람 중에 죽기 전에 인자가 그 왕권을 가지고 오는 것을 925 | yJHx1X6Jp0Q.0000.wav|에베소서 4장 926 | yJHx1X6Jp0Q.0001.wav|그러므로 주 안에서 갇힌 내가 너희를 권하노니 927 | yJHx1X6Jp0Q.0002.wav|너희가 부르심을 받은 일에 합당하게 행하여 928 | yJHx1X6Jp0Q.0003.wav|모든 겸손과 온유로 하고 929 | yJHx1X6Jp0Q.0004.wav|오래 참음으로 사랑 가운데서 서로 용납하고 930 | yJHx1X6Jp0Q.0005.wav|평안의 매는 줄로 성령이 하나 되게 하신 것을 힘써 지키라 931 | yJHx1X6Jp0Q.0006.wav|몸이 하나요 성령도 한 분이시니 932 | yJHx1X6Jp0Q.0007.wav|이와 같이 너희가 부르심의 한 소망 안에서 부르심을 받았느니라 933 | yJHx1X6Jp0Q.0008.wav|주도 한 분이시요 믿음도 하나요 세례도 하나요 934 | yJHx1X6Jp0Q.0009.wav|하나님도 한 분이시니 곧 만유의 아버지시라 935 | yJHx1X6Jp0Q.0010.wav|만유 위에 계시고 만유를 통일하시고 만유 가운데 계시도다 936 | yJHx1X6Jp0Q.0011.wav|우리 각 사람에게 그리스도의 선물의 분량대로 은혜를 주셨나니 937 | yJHx1X6Jp0Q.0012.wav|그러므로 이르기를 그가 위로 올라가실 때에 사로잡혔던 자들을 사로잡으시고 938 | yJHx1X6Jp0Q.0013.wav|사람들에게 선물을 주셨다 하였도다 939 | yJHx1X6Jp0Q.0014.wav|올라가셨다 하였은즉 940 | yJHx1X6Jp0Q.0015.wav|땅 아래 낮은 곳으로 내리셨던 것이 아니면 무엇이냐 941 | yJHx1X6Jp0Q.0016.wav|내리셨던 그가 곧 모든 하늘 위에 오르신 자니 942 | yJHx1X6Jp0Q.0017.wav|이는 만물을 충만하게 하려 하심이라 943 | yJHx1X6Jp0Q.0018.wav|그가 어떤 사람은 사도로 944 | yJHx1X6Jp0Q.0019.wav|어떤 사람은 선지자로 어떤 사람은 복음 전하는 자로 어떤 사람은 목사와 교사로 삼으셨으니 945 | yJHx1X6Jp0Q.0020.wav|이는 성도를 온전하게 하여 봉사의 일을 하게 하며 946 | yJHx1X6Jp0Q.0021.wav|그리스도의 몸을 세우려 하심이라 947 | yJHx1X6Jp0Q.0022.wav|우리가 다 하나님의 아들을 믿는 것과 948 | yJHx1X6Jp0Q.0023.wav|아는 일에 하나가 되어 온전한 사람을 이루어 949 | yJHx1X6Jp0Q.0024.wav|그리스도의 장성한 분량이 충만한 데까지 이르리니 이는 우리가 이제부터 어린 아이가 되지 아니하여 950 | yJHx1X6Jp0Q.0025.wav|사람의 속임수와 간사한 유혹에 빠져 온갖 교훈의 풍조에 밀려 요동하지 않게 하려 함이라 951 | yJHx1X6Jp0Q.0026.wav|오직 사랑 안에서 참된 것을 하여 952 | yJHx1X6Jp0Q.0027.wav|범사에 그에게까지 자랄지라 953 | yJHx1X6Jp0Q.0028.wav|그는 머리니 곧 그리스도라 954 | yJHx1X6Jp0Q.0029.wav|그에게서 온 몸이 각 마디를 통하여 도움을 받음으로 연결되고 결합되어 각 지체의 분량대로 역사하여 955 | yJHx1X6Jp0Q.0030.wav|그 몸을 자라게 하며 956 | yJHx1X6Jp0Q.0031.wav|사랑 안에서 스스로 세우느니라 957 | yJHx1X6Jp0Q.0032.wav|그러므로 내가 이것을 말하며 주 안에서 증언하노니 958 | yJHx1X6Jp0Q.0033.wav|이제부터 너희는 이방인이 그 마음의 허망한 것으로 행함 같이 행하지 말라 959 | yJHx1X6Jp0Q.0034.wav|그들의 총명이 어두워지고 그들 가운데 있는 무지함과 그들의 마음이 굳어짐으로 말미암아 하나님의 생명에서 떠나 있도다 960 | yJHx1X6Jp0Q.0035.wav|그들이 감각 없는 자가 되어 961 | yJHx1X6Jp0Q.0036.wav|자신을 방탕에 방임하여 모든 더러운 것을 욕심으로 행하되 962 | yJHx1X6Jp0Q.0037.wav|오직 너희는 그리스도를 그같이 배우지 아니하였느니라 963 | yJHx1X6Jp0Q.0038.wav|진리가 예수 안에 있는 것 같이 너희가 참으로 그에게서 듣고 964 | yJHx1X6Jp0Q.0039.wav|또한 그 안에서 가르침을 받았을진대 965 | yJHx1X6Jp0Q.0040.wav|너희는 유혹의 욕심을 따라 썩어져 가는 구습을 따르는 옛 사람을 벗어 버리고 966 | yJHx1X6Jp0Q.0041.wav|오직 너희의 심령이 새롭게 되어 967 | yJHx1X6Jp0Q.0042.wav|하나님을 따라 의와 진리의 거룩함으로 지으심을 받은 새 사람을 입으라 968 | yJHx1X6Jp0Q.0043.wav|그런즉 거짓을 버리고 각각 그 이웃과 더불어 참된 것을 말하라 969 | yJHx1X6Jp0Q.0044.wav|이는 우리가 서로 지체가 됨이라 970 | yJHx1X6Jp0Q.0045.wav|분을 내어도 죄를 짓지 말며 해가 지도록 분을 품지 말고 971 | yJHx1X6Jp0Q.0046.wav|마귀에게 틈을 주지 말라 972 | yJHx1X6Jp0Q.0047.wav|도둑질하는 자는 다시 도둑질하지 말고 973 | yJHx1X6Jp0Q.0048.wav|돌이켜 가난한 자에게 구제할 수 있도록 자기 손으로 수고하여 선한 일을 하라 974 | yJHx1X6Jp0Q.0049.wav|무릇 더러운 말은 너희 입 밖에도 내지 말고 975 | yJHx1X6Jp0Q.0050.wav|오직 덕을 세우는 데 소용되는 대로 선한 말을 하여 976 | yJHx1X6Jp0Q.0051.wav|듣는 자들에게 은혜를 끼치게 하라 977 | yJHx1X6Jp0Q.0052.wav|하나님의 성령을 근심하게 하지 말라 978 | yJHx1X6Jp0Q.0053.wav|그 안에서 너희가 구원의 날까지 인치심을 받았느니라 979 | yJHx1X6Jp0Q.0054.wav|너희는 모든 악독과 노함과 분냄과 떠드는 것과 980 | yJHx1X6Jp0Q.0055.wav|비방하는 것을 모든 악의와 981 | yJHx1X6Jp0Q.0056.wav|함께 버리고 982 | yJHx1X6Jp0Q.0057.wav|서로 친절하게 하며 불쌍히 여기며 서로 용서하기를 983 | ziPM1dkVl6g.0000.wav|민수기 5장 984 | ziPM1dkVl6g.0001.wav|여호와께서 모세에게 말씀하여 이르시되 985 | ziPM1dkVl6g.0002.wav|이스라엘 자손에게 명령하여 모든 나병 환자와 유출증이 있는 자와 986 | ziPM1dkVl6g.0003.wav|주검으로 부정하게 된 자를 다 진영 밖으로 내보내되 987 | ziPM1dkVl6g.0004.wav|남녀를 막론하고 다 진영 밖으로 내보내어 988 | ziPM1dkVl6g.0005.wav|그들이 진영을 더럽히게 하지 말라 989 | ziPM1dkVl6g.0007.wav|이스라엘 자손이 그같이 행하여 그들을 진영 밖으로 내보냈으니 990 | ziPM1dkVl6g.0008.wav|곧 여호와께서 모세에게 이르신 대로 이스라엘 자손이 행하였더라 991 | ziPM1dkVl6g.0006.wav|그 진영 가운데에 거하느니라 하시매 992 | ziPM1dkVl6g.0009.wav|여호와께서 모세에게 말씀하여 이르시되 993 | ziPM1dkVl6g.0010.wav|이스라엘 자손에게 이르라 994 | ziPM1dkVl6g.0011.wav|남자나 여자나 사람들이 범하는 죄를 범하여 995 | ziPM1dkVl6g.0012.wav|여호와께 거역함으로 죄를 지으면 996 | ziPM1dkVl6g.0013.wav|그 지은 죄를 자복하고 그 죄 값을 온전히 갚되 997 | ziPM1dkVl6g.0014.wav|오분의 일을 더하여 그가 죄를 지었던 그 사람에게 돌려줄 것이요 998 | ziPM1dkVl6g.0015.wav|만일 죄 값을 받을 만한 친척이 없으면 999 | ziPM1dkVl6g.0016.wav|그 죄 값을 여호와께 드려 제사장에게로 돌릴 것이니 이는 그를 위하여 속죄할 속죄의 숫양과 함께 돌릴 것이니라 1000 | ziPM1dkVl6g.0017.wav|이스라엘 자손이 거제로 제사장에게 가져오는 모든 성물은 그의 것이 될 것이라 1001 | ziPM1dkVl6g.0018.wav|각 사람이 구별한 물건은 그의 것이 되나니 1002 | ziPM1dkVl6g.0019.wav|누구든지 제사장에게 주는 것은 그의 것이 되느니라 1003 | ziPM1dkVl6g.0020.wav|여호와께서 모세에게 말씀하여 이르시되 1004 | ziPM1dkVl6g.0021.wav|이스라엘 자손에게 말하여 그들에게 이르라 1005 | ziPM1dkVl6g.0022.wav|만일 어떤 사람의 아내가 탈선하여 남편에게 신의를 저버렸고 1006 | ziPM1dkVl6g.0023.wav|한 남자가 그 여자와 동침하였으나 그의 남편의 눈에 숨겨 드러나지 아니하였고 1007 | ziPM1dkVl6g.0024.wav|그 여자의 더러워진 일에 증인도 없고 그가 잡히지도 아니하였어도 1008 | ziPM1dkVl6g.0025.wav|그 남편이 의심이 생겨 그 아내를 의심하였는데 1009 | ziPM1dkVl6g.0026.wav|그의 아내가 더럽혀졌거나 1010 | ziPM1dkVl6g.0027.wav|또는 그 남편이 의심이 생겨 그 아내를 의심하였으나 1011 | ziPM1dkVl6g.0028.wav|그 아내가 더럽혀지지 아니하였든지 1012 | ziPM1dkVl6g.0029.wav|그의 아내를 데리고 제사장에게로 가서 1013 | ziPM1dkVl6g.0030.wav|그를 위하여 보리 가루 십분의 일 에바를 헌물로 드리되 1014 | ziPM1dkVl6g.0031.wav|그것에 기름도 붓지 말고 유향도 두지 말라 1015 | ziPM1dkVl6g.0032.wav|이는 의심의 소제요 죄악을 기억나게 하는 기억의 소제라 1016 | ziPM1dkVl6g.0033.wav|제사장은 그 여인을 가까이 오게 하여 여호와 앞에 세우고 1017 | ziPM1dkVl6g.0034.wav|토기에 거룩한 물을 담고 1018 | ziPM1dkVl6g.0035.wav|성막 바닥의 티끌을 취하여 물에 넣고 1019 | ziPM1dkVl6g.0036.wav|여인을 여호와 앞에 세우고 그의 머리를 풀게 하고 1020 | ziPM1dkVl6g.0037.wav|기억나게 하는 소제물 곧 의심의 소제물을 그의 두 손에 두고 1021 | ziPM1dkVl6g.0038.wav|제사장은 저주가 되게 할 쓴 물을 자기 손에 들고 1022 | ziPM1dkVl6g.0039.wav|여인에게 맹세하게 하여 그에게 이르기를 1023 | ziPM1dkVl6g.0040.wav|네가 네 남편을 두고 탈선하여 다른 남자와 동침하여 더럽힌 일이 없으면 1024 | ziPM1dkVl6g.0041.wav|저주가 되게 하는 이 쓴 물의 해독을 면하리라 1025 | ziPM1dkVl6g.0042.wav|그러나 네가 네 남편을 두고 탈선하여 몸을 더럽혀서 네 남편 아닌 사람과 동침하였으면 1026 | ziPM1dkVl6g.0043.wav|제사장이 그 여인에게 저주의 맹세를 하게 하고 그 여인에게 말할지니라 1027 | ziPM1dkVl6g.0044.wav|여호와께서 네 넓적다리가 마르고 네 배가 부어서 1028 | ziPM1dkVl6g.0045.wav|네가 네 백성 중에 저줏거리 맹셋거리가 되게 하실지라 1029 | ziPM1dkVl6g.0046.wav|이 저주가 되게 하는 이 물이 네 창자에 들어가서 네 배를 붓게 하고 1030 | ziPM1dkVl6g.0047.wav|네 넓적다리를 마르게 하리라 할 것이요 1031 | ziPM1dkVl6g.0048.wav|여인은 아멘 아멘 할지니라 1032 | ziPM1dkVl6g.0049.wav|제사장이 저주의 말을 두루마리에 써서 그 글자를 그 쓴 물에 빨아 넣고 1033 | ziPM1dkVl6g.0050.wav|여인에게 그 저주가 되게 하는 쓴 물을 마시게 할지니 1034 | ziPM1dkVl6g.0051.wav|그 저주가 되게 하는 물이 그의 속에 들어 가서 쓰리라 1035 | ziPM1dkVl6g.0052.wav|제사장이 먼저 그 여인의 손에서 의심의 소제물을 취하여 1036 | ziPM1dkVl6g.0053.wav|그 소제물을 여호와 앞에 흔들고 제단으로 가지고 가서 1037 | ziPM1dkVl6g.0054.wav|제사장은 그 소제물 중에서 한 움큼을 취하여 1038 | ziPM1dkVl6g.0055.wav|그 여자에게 기억나게 하는 소제물로 제단 위에 불사르고 1039 | ziPM1dkVl6g.0056.wav|그 후에 여인에게 그 물을 마시게 할지라 1040 | ziPM1dkVl6g.0057.wav|물을 마시게 한 후에 만일 여인이 몸을 더럽혀서 그 남편에게 범죄하였으면 1041 | ziPM1dkVl6g.0058.wav|그 저주가 되게 하는 물이 그의 속에 들어가서 쓰게 되어 1042 | ziPM1dkVl6g.0059.wav|그의 배가 부으며 그의 넓적다리가 마르리니 1043 | ziPM1dkVl6g.0060.wav|그 여인이 그 백성 중에서 저줏거리가 될 것이니라 1044 | ziPM1dkVl6g.0061.wav|그러나 여인이 더럽힌 일이 없고 정결하면 해를 받지 않고 임신하리라 1045 | ziPM1dkVl6g.0063.wav|이는 의심의 법이니 아내가 그의 남편을 두고 탈선하여 더럽힌 때나 1046 | ziPM1dkVl6g.0064.wav|또는 그 남편이 의심이 생겨서 자기의 아내를 의심할 때에 1047 | ziPM1dkVl6g.0065.wav|여인을 여호와 앞에 두고 제사장이 이 법대로 행할 것이라 1048 | ziPM1dkVl6g.0066.wav|남편은 무죄할 것이요 여인은 죄가 있으면 당하리라 1049 | fQxxEYmsLVU.0000.wav|데살로니가전서 1장 1050 | fQxxEYmsLVU.0001.wav|바울과 실루아노와 디모데는 하나님 아버지와 주 예수 그리스도 안에 있는 데살로니가인의 교회에 편지하노니 1051 | fQxxEYmsLVU.0002.wav|은혜와 평강이 너희에게 있을지어다 1052 | fQxxEYmsLVU.0003.wav|우리가 너희 모두로 말미암아 항상 하나님께 감사하며 기도할 때에 너희를 기억함은 1053 | fQxxEYmsLVU.0004.wav|너희의 믿음의 역사와 사랑의 수고와 1054 | fQxxEYmsLVU.0005.wav|우리 주 예수 그리스도에 대한 소망의 인내를 우리 하나님 아버지 앞에서 끊임없이 기억함이니 1055 | fQxxEYmsLVU.0006.wav|인내를 우리 하나님 아버지 앞에서 끊임없이 기억하 미니 하나님의 1056 | fQxxEYmsLVU.0007.wav|이는 우리 복음이 너희에게 말로만 이른 것이 아니라 1057 | fQxxEYmsLVU.0008.wav|또한 능력과 성령과 큰 확신으로 된 것임이라 1058 | fQxxEYmsLVU.0009.wav|우리가 너희 가운데서 너희를 위하여 어떤 사람이 된 것은 1059 | fQxxEYmsLVU.0010.wav|너희가 아는 바와 같으니라 1060 | fQxxEYmsLVU.0011.wav|또 너희는 많은 환난 가운데서 성령의 기쁨으로 말씀을 받아 1061 | fQxxEYmsLVU.0012.wav|우리와 주를 본받은 자가 되었으니 1062 | fQxxEYmsLVU.0013.wav|그러므로 너희가 마게도냐와 아가야에 있는 모든 믿는 자의 본이 되었느니라 1063 | fQxxEYmsLVU.0014.wav|주의 말씀이 너희에게로부터 마게도냐와 아가야에만 들릴 뿐 아니라 1064 | fQxxEYmsLVU.0015.wav|하나님을 향하는 너희 믿음의 소문이 각처에 퍼졌으므로 1065 | fQxxEYmsLVU.0016.wav|우리는 아무 말도 할 것이 없노라 1066 | fQxxEYmsLVU.0017.wav|그들이 우리에 대하여 스스로 말하기를 1067 | fQxxEYmsLVU.0018.wav|우리가 어떻게 너희 가운데에 들어갔는지와 1068 | fQxxEYmsLVU.0019.wav|너희가 어떻게 우상을 버리고 하나님께로 돌아와서 살아 계시고 참되신 하나님을 섬기는지와 또 죽은 자들 가운데서 다시 살리신 그의 아들이 1069 | fQxxEYmsLVU.0020.wav|하늘로부터 강림하실 것을 너희가 어떻게 기다리는지를 말하니 1070 | PGj-P5mxXN4.0000.wav|창세기 35장 1071 | PGj-P5mxXN4.0001.wav|하나님이 야곱에게 이르시되 일어나 벧엘로 올라가서 거기 거주하며 1072 | PGj-P5mxXN4.0002.wav|네가 네 형 에서의 낯을 피하여 도망하던 때에 네게 나타났던 하나님께 거기서 제단을 쌓으라 하신지라 1073 | PGj-P5mxXN4.0003.wav|야곱이 이에 자기 집안 사람과 자기와 함께 한 모든 자에게 이르되 1074 | PGj-P5mxXN4.0004.wav|너희 중에 있는 이방 신상들을 버리고 자신을 정결하게 하고 너희들의 의복을 바꾸어 입으라 1075 | PGj-P5mxXN4.0005.wav|우리가 일어나 벧엘로 올라가자 1076 | PGj-P5mxXN4.0006.wav|내 환난 날에 내게 응답하시며 내가 가는 길에서 나와 함께 하신 하나님께 내가 거기서 제단을 쌓으려 하노라 하매 1077 | PGj-P5mxXN4.0007.wav|그들이 자기 손에 있는 모든 이방 신상들과 자기 귀에 있는 귀고리들을 야곱에게 주는지라 1078 | PGj-P5mxXN4.0008.wav|야곱이 그것들을 세겜 근처 상수리나무 아래에 묻고 1079 | PGj-P5mxXN4.0009.wav|그들이 떠났으나 1080 | PGj-P5mxXN4.0010.wav|하나님이 그 사면 고을들로 크게 두려워하게 하셨으므로 1081 | PGj-P5mxXN4.0011.wav|야곱의 아들들을 추격하는 자가 없었더라 1082 | PGj-P5mxXN4.0012.wav|야곱과 그와 함께 한 모든 사람이 가나안 땅 루스 곧 벧엘에 이르고 1083 | PGj-P5mxXN4.0013.wav|그가 거기서 제단을 쌓고 그 곳을 엘벧엘이라 불렀으니 1084 | PGj-P5mxXN4.0014.wav|이는 그의 형을 낯을 피할 때에 1085 | PGj-P5mxXN4.0015.wav|하나님이 거기서 그에게 나타나셨음이더라 1086 | PGj-P5mxXN4.0016.wav|리브가의 유모 드보라가 죽으매 1087 | PGj-P5mxXN4.0017.wav|그를 벧엘 아래에 있는 상수리나무 밑에 장사하고 1088 | PGj-P5mxXN4.0018.wav|그 나무 이름을 알론바굿이라 불렀더라 1089 | PGj-P5mxXN4.0019.wav|야곱이 밧단아람에서 돌아오매 하나님이 다시 야곱에게 나타나사 그에게 복을 주시고 1090 | PGj-P5mxXN4.0020.wav|하나님이 그에게 이르시되 네 이름이 야곱이지마는 네 이름을 다시는 야곱이라 부르지 않겠고 이스라엘이 네 이름이 되리라 하시고 그가 그의 이름을 이스라엘이라 부르시고 1091 | PGj-P5mxXN4.0021.wav|하나님이 그에게 이르시되 1092 | PGj-P5mxXN4.0022.wav|나는 전능한 하나님이라 1093 | PGj-P5mxXN4.0023.wav|생육하며 번성하라 한 백성과 백성들의 총회가 네게서 나오고 1094 | PGj-P5mxXN4.0024.wav|왕들이 네 허리에서 나오리라 1095 | PGj-P5mxXN4.0025.wav|내가 아브라함과 이삭에게 준 땅을 네게 주고 1096 | PGj-P5mxXN4.0026.wav|내가 네 후손에게도 그 땅을 주리라 하시고 1097 | PGj-P5mxXN4.0027.wav|하나님이 그와 말씀하시던 곳에서 그를 떠나 올라가시는지라 1098 | PGj-P5mxXN4.0028.wav|야곱이 하나님이 자기와 말씀하시던 곳에 기둥 곧 돌 기둥을 세우고 1099 | PGj-P5mxXN4.0029.wav|그 위에 전제물을 붓고 또 그 위에 기름을 붓고 1100 | PGj-P5mxXN4.0030.wav|하나님이 자기와 말씀하시던 곳의 이름을 벧엘이라 불렀더라 1101 | PGj-P5mxXN4.0031.wav|그들이 벧엘에서 길을 떠나 에브랏에 이르기까지 1102 | PGj-P5mxXN4.0032.wav|얼마간 거리를 둔 곳에서 라헬이 해산하게 되어 심히 고생하여 1103 | PGj-P5mxXN4.0033.wav|그가 난산할 즈음에 산파가 그에게 이르되 1104 | PGj-P5mxXN4.0034.wav|두려워하지 말라 1105 | PGj-P5mxXN4.0035.wav|지금 네가 또 득남하느니라 하매 1106 | PGj-P5mxXN4.0036.wav|그가 죽게 되어 그의 혼이 떠나려 할 때에 1107 | PGj-P5mxXN4.0037.wav|아들의 이름을 베노니라 불렀으나 1108 | PGj-P5mxXN4.0038.wav|그의 아버지는 그를 베냐민이라 불렀더라 1109 | PGj-P5mxXN4.0039.wav|라헬이 죽으매 에브랏 곧 베들레헴 길에 장사되었고 1110 | PGj-P5mxXN4.0040.wav|야곱이 라헬의 묘에 비를 세웠더니 1111 | PGj-P5mxXN4.0041.wav|지금까지 라헬의 묘비라 일컫더라 1112 | PGj-P5mxXN4.0042.wav|이스라엘이 다시 길을 떠나 에델 망대를 지나 장막을 쳤더라 1113 | PGj-P5mxXN4.0043.wav|이스라엘이 그 땅에 거주할 때에 르우벤이 가서 그 아버지의 첩 빌하와 동침하매 1114 | PGj-P5mxXN4.0044.wav|이스라엘이 이를 들었더라 1115 | PGj-P5mxXN4.0045.wav|야곱의 아들은 열둘이라 1116 | PGj-P5mxXN4.0046.wav|레아의 아들들은 야곱의 장자 르우벤과 1117 | PGj-P5mxXN4.0047.wav|그 다음 시므온과 레위와 유다와 잇사갈과 스불론이요 1118 | PGj-P5mxXN4.0048.wav|라헬의 아들들은 요셉과 베냐민이며 1119 | PGj-P5mxXN4.0049.wav|라헬의 여종 빌하의 아들들은 단과 납달리요 1120 | PGj-P5mxXN4.0050.wav|레아의 여종 실바의 아들들은 갓과 아셀이니 1121 | PGj-P5mxXN4.0051.wav|이들은 야곱의 아들들이요 밧단아람에서 그에게 낳은 자더라 1122 | PGj-P5mxXN4.0052.wav|야곱이 기럇아르바의 마므레로 가서 그의 아버지 이삭에게 이르렀으니 1123 | PGj-P5mxXN4.0053.wav|기럇아르바는 곧 아브라함과 이삭이 거류하던 헤브론이더라 1124 | PGj-P5mxXN4.0054.wav|이삭의 나이가 백팔십 세라 1125 | PGj-P5mxXN4.0055.wav|이삭이 나이가 많고 늙어 기운이 다하매 죽어 1126 | PGj-P5mxXN4.0056.wav|자기 열조에게로 돌아가니 1127 | PGj-P5mxXN4.0057.wav|그의 아들 에서와 야곱이 그를 장사하였더라 1128 | PGj-P5mxXN4.0058.wav|창세기 36장 1129 | PGj-P5mxXN4.0059.wav|에서 곧 에돔의 족보는 이러하니라 1130 | PGj-P5mxXN4.0060.wav|에서가 가나안 여인 중 헷 족속 엘론의 딸 아다와 1131 | PGj-P5mxXN4.0061.wav|히위 족속 시브온의 딸인 아나의 딸 오홀리바마를 자기 아내로 맞이하고 1132 | PGj-P5mxXN4.0062.wav|또 이스마엘의 딸 느바욧의 누이 바스맛을 맞이하였더니 1133 | PGj-P5mxXN4.0063.wav|아다는 엘리바스를 에서에게 낳았고 바스맛은 르우엘을 낳았고 1134 | PGj-P5mxXN4.0064.wav|오홀리바마는 여우스와 얄람과 고라를 낳았으니 1135 | PGj-P5mxXN4.0065.wav|이들은 에서의 아들들이요 가나안 땅에서 그에게 태어난 자들이더라 1136 | PGj-P5mxXN4.0066.wav|에서가 자기 아내들과 자기 자녀들과 자기 집의 모든 사람과 1137 | PGj-P5mxXN4.0067.wav|자기의 가축과 자기의 모든 짐승과 1138 | PGj-P5mxXN4.0068.wav|자기가 가나안 땅에서 모은 모든 재물을 이끌고 그의 동생 야곱을 떠나 다른 곳으로 갔으니 1139 | PGj-P5mxXN4.0069.wav|두 사람의 소유가 풍부하여 함께 거주할 수 없음이러라 1140 | PGj-P5mxXN4.0070.wav|그들이 거주하는 땅이 그들의 가축으로 말미암아 그들을 용납할 수 없었더라 1141 | PGj-P5mxXN4.0071.wav|이에 에서 곧 에돔이 세일 산에 거주하니라 1142 | PGj-P5mxXN4.0072.wav|세일 산에 있는 에돔 족속의 조상 에서의 족보는 이러하고 1143 | PGj-P5mxXN4.0073.wav|그 자손의 이름은 이러하니라 1144 | PGj-P5mxXN4.0074.wav|에서의 아내 아다의 아들은 엘리바스요 1145 | PGj-P5mxXN4.0075.wav|에서의 아내 바스맛의 아들은 르우엘이며 1146 | PGj-P5mxXN4.0076.wav|엘리바스의 아들들은 데만과 오말과 스보와 가담과 그나스요 1147 | PGj-P5mxXN4.0077.wav|에서의 아들 엘리바스의 첩 딤나는 1148 | PGj-P5mxXN4.0078.wav|아말렉을 엘리바스에게 낳았으니 1149 | PGj-P5mxXN4.0079.wav|이들은 에서의 아내 아다의 자손이며 1150 | PGj-P5mxXN4.0080.wav|르우엘의 아들들은 나핫과 세라와 삼마와 미사니 1151 | PGj-P5mxXN4.0081.wav|이들은 에서의 아내 바스맛의 자손이며 1152 | PGj-P5mxXN4.0082.wav|시브온의 손녀 아나의 딸 에서의 아내 오홀리바마의 아들들은 이러하니 1153 | PGj-P5mxXN4.0083.wav|그가 여우스와 얄람과 고라를 에서에게 낳았더라 1154 | PGj-P5mxXN4.0084.wav|에서 자손 중 족장은 이러하니라 1155 | PGj-P5mxXN4.0085.wav|에서의 장자 엘리바스의 자손으로는 데만 족장, 오말 족장, 스보 족장, 그나스 족장과 1156 | PGj-P5mxXN4.0086.wav|고라 족장, 가담 족장, 아말렉 족장이니 1157 | PGj-P5mxXN4.0087.wav|이들은 에돔 땅에 있는 엘리바스의 족장들이요 이들은 아다의 자손이며 1158 | PGj-P5mxXN4.0088.wav|에서의 아들 르우엘의 자손으로는 나핫 족장, 세라 족장, 삼마 족장, 미사 족장이니 1159 | PGj-P5mxXN4.0089.wav|이들은 에돔 땅에 있는 르우엘의 족장들이요 이들은 에서의 아내 바스맛의 자손이며 1160 | PGj-P5mxXN4.0090.wav|에서의 아내인 오홀리바마의 아들들은 여우스 족장, 얄람 족장, 고라 족장이니 1161 | PGj-P5mxXN4.0091.wav|이들은 아나의 딸이요 에서의 아내인 오홀리바마로 말미암아 나온 족장들이라 1162 | PGj-P5mxXN4.0092.wav|에서 곧 에돔의 자손으로서 족장 된 자들이 이러하였더라 1163 | PGj-P5mxXN4.0093.wav|그 땅의 주민 호리 족속 세일의 자손은 로단과 소발과 시브온과 아나와 1164 | PGj-P5mxXN4.0094.wav|디손과 에셀과 디산이니 1165 | PGj-P5mxXN4.0095.wav|이들은 에돔 땅에 있는 세일의 자손 중 호리 족속의 족장들이요 1166 | PGj-P5mxXN4.0096.wav|로단의 자녀는 호리와 헤맘과 로단의 누이 딤나요 1167 | PGj-P5mxXN4.0097.wav|소발의 자녀는 알완과 마나핫과 에발과 스보와 오남이요 1168 | PGj-P5mxXN4.0098.wav|시브온의 자녀는 아야와 아나며 1169 | PGj-P5mxXN4.0099.wav|이 아나는 그 아버지 시브온의 나귀를 칠 때에 1170 | PGj-P5mxXN4.0100.wav|광야에서 온천을 발견하였고 1171 | PGj-P5mxXN4.0101.wav|아나의 자녀는 디손과 오홀리바마니 1172 | PGj-P5mxXN4.0102.wav|오홀리바마는 아나의 딸이며 1173 | PGj-P5mxXN4.0103.wav|디손의 자녀는 헴단과 에스반과 이드란과 그란이요 1174 | PGj-P5mxXN4.0104.wav|에셀의 자녀는 빌한과 사아완과 아간이요 1175 | PGj-P5mxXN4.0105.wav|디산의 자녀는 우스와 아란이니 1176 | PGj-P5mxXN4.0106.wav|호리 족속의 족장들은 곧 로단 족장, 소발 족장, 시브온 족장, 아나 족장, 1177 | PGj-P5mxXN4.0107.wav|디손 족장, 에셀 족장, 디산 족장이라 1178 | PGj-P5mxXN4.0108.wav|이들은 그들의 족속들에 따라 1179 | PGj-P5mxXN4.0109.wav|세일 땅에 있는 호리 족속의 족장들이었더라 1180 | PGj-P5mxXN4.0110.wav|이스라엘 자손을 다스리는 왕이 있기 전에 에돔 땅을 다스리던 왕들은 이러하니라 1181 | PGj-P5mxXN4.0111.wav|브올의 아들 벨라가 에돔의 왕이 되었으니 그 도성의 이름은 딘하바며 1182 | PGj-P5mxXN4.0112.wav|벨라가 죽고 보스라 사람 세라의 아들 요밥이 그를 대신하여 왕이 되었고 1183 | PGj-P5mxXN4.0113.wav|요밥이 죽고 데만 족속의 땅의 후삼이 그를 대신하여 왕이 되었고 1184 | PGj-P5mxXN4.0114.wav|후삼이 죽고 브닷의 아들 곧 모압 들에서 미디안 족속을 친 하닷이 1185 | PGj-P5mxXN4.0115.wav|그를 대신하여 왕이 되었으니 그 도성 이름은 아윗이며 1186 | PGj-P5mxXN4.0116.wav|하닷이 죽고 마스레가의 삼라가 그를 대신하여 왕이 되었고 1187 | PGj-P5mxXN4.0117.wav|삼라가 죽고 유브라데 강변 르호봇의 사울이 그를 대신하여 왕이 되었고 1188 | PGj-P5mxXN4.0118.wav|사울이 죽고 1189 | PGj-P5mxXN4.0119.wav|악볼의 아들 바알하난이 그를 대신하여 왕이 되었고 1190 | PGj-P5mxXN4.0120.wav|악볼의 아들 바알하난이 죽고 하달이 그를 대신하여 왕이 되었으니 1191 | PGj-P5mxXN4.0121.wav|그 도성 이름은 바우며 1192 | PGj-P5mxXN4.0122.wav|그의 아내의 이름은 므헤다벨이니 1193 | PGj-P5mxXN4.0123.wav|마드렛의 딸이요 메사합의 손녀더라 1194 | PGj-P5mxXN4.0124.wav|에서에게서 나온 족장들의 이름은 그 종족과 거처와 이름을 따라 나누면 이러하니 1195 | PGj-P5mxXN4.0125.wav|딤나 족장, 알와 족장, 여뎃 족장, 1196 | PGj-P5mxXN4.0126.wav|오홀리바마 족장 1197 | PGj-P5mxXN4.0127.wav|엘라 족장 1198 | PGj-P5mxXN4.0128.wav|비논 족장 1199 | PGj-P5mxXN4.0129.wav|그나스 족장, 데만 족장, 밉살 족장, 1200 | PGj-P5mxXN4.0130.wav|막디엘 족장, 이람 족장이라 1201 | PGj-P5mxXN4.0131.wav|이들은 그 구역과 거처를 따른 에돔 족장들이며 1202 | PGj-P5mxXN4.0132.wav|에돔 족속의 조상은 에서더라 1203 | PGj-P5mxXN4.0133.wav|창세기 37장 1204 | PGj-P5mxXN4.0134.wav|야곱이 가나안 땅 곧 그의 아버지가 거류하던 땅에 거주하였으니 1205 | PGj-P5mxXN4.0135.wav|야곱의 족보는 이러하니라 1206 | PGj-P5mxXN4.0136.wav|요셉이 십칠 세의 소년으로서 그의 형들과 함께 양을 칠 때에 1207 | PGj-P5mxXN4.0137.wav|그의 아버지의 아내들 빌하와 실바의 아들들과 더불어 함께 있었더니 1208 | PGj-P5mxXN4.0138.wav|그가 그들의 잘못을 아버지에게 말하더라 1209 | PGj-P5mxXN4.0139.wav|요셉은 노년에 얻은 아들이므로 1210 | PGj-P5mxXN4.0140.wav|이스라엘이 여러 아들들보다 그를 더 사랑하므로 1211 | PGj-P5mxXN4.0141.wav|그를 위하여 채색옷을 지었더니 1212 | PGj-P5mxXN4.0142.wav|그의 형들이 아버지가 형들보다 그를 더 사랑함을 보고 그를 미워하여 그에게 편안하게 말할 수 없었더라 1213 | PGj-P5mxXN4.0143.wav|요셉이 꿈을 꾸고 자기 형들에게 말하매 1214 | PGj-P5mxXN4.0144.wav|그들이 그를 더욱 미워하였더라 1215 | PGj-P5mxXN4.0145.wav|요셉이 그들에게 이르되 1216 | PGj-P5mxXN4.0146.wav|청하건대 내가 꾼 꿈을 들으시오 1217 | PGj-P5mxXN4.0147.wav|우리가 밭에서 곡식 단을 묶더니 내 단은 일어서고 당신들의 단은 내 단을 둘러서서 절하더이다 1218 | PGj-P5mxXN4.0148.wav|그의 형들이 그에게 이르되 네가 참으로 우리의 왕이 되겠느냐 1219 | PGj-P5mxXN4.0149.wav|참으로 우리를 다스리게 되겠느냐 하고 1220 | PGj-P5mxXN4.0150.wav|그의 꿈과 그의 말로 말미암아 그를 더욱 미워하더니 1221 | PGj-P5mxXN4.0151.wav|요셉이 다시 꿈을 꾸고 그의 형들에게 말하여 이르되 1222 | PGj-P5mxXN4.0152.wav|내가 또 꿈을 꾼즉 해와 달과 열한 별이 내게 절하더이다 하니라 1223 | PGj-P5mxXN4.0153.wav|그가 그의 꿈을 아버지와 형들에게 말하매 1224 | PGj-P5mxXN4.0154.wav|아버지가 그를 꾸짖고 그에게 이르되 1225 | PGj-P5mxXN4.0155.wav|네가 꾼 꿈이 무엇이냐 1226 | PGj-P5mxXN4.0156.wav|나와 네 어머니와 네 형들이 참으로 가서 땅에 엎드려 네게 절하겠느냐 1227 | PGj-P5mxXN4.0157.wav|그의 형들은 시기하되 그의 아버지는 그 말을 간직해 두었더라 1228 | PGj-P5mxXN4.0158.wav|그의 형들이 세겜에 가서 아버지의 양 떼를 칠 때에 1229 | PGj-P5mxXN4.0159.wav|이스라엘이 요셉에게 이르되 1230 | PGj-P5mxXN4.0160.wav|네 형들이 세겜에서 양을 치지 아니하느냐 1231 | PGj-P5mxXN4.0161.wav|너를 그들에게로 보내리라 1232 | PGj-P5mxXN4.0162.wav|요셉이 아버지에게 대답하되 내가 그리하겠나이다 1233 | PGj-P5mxXN4.0163.wav|이스라엘이 그에게 이르되 1234 | PGj-P5mxXN4.0164.wav|가서 네 형들과 양 떼가 다 잘 있는지를 보고 1235 | PGj-P5mxXN4.0165.wav|돌아와 내게 말하라 하고 1236 | PGj-P5mxXN4.0166.wav|그를 헤브론 골짜기에서 보내니 그가 세겜으로 가니라 1237 | PGj-P5mxXN4.0167.wav|어떤 사람이 그를 만난즉 그가 들에서 방황하는지라 1238 | PGj-P5mxXN4.0168.wav|그 사람이 그에게 물어 이르되 네가 무엇을 찾느냐 1239 | PGj-P5mxXN4.0169.wav|그가 이르되 1240 | PGj-P5mxXN4.0170.wav|내가 내 형들을 찾으오니 청하건대 그들이 양치는 곳을 내게 가르쳐 주소서 1241 | PGj-P5mxXN4.0171.wav|그 사람이 이르되 1242 | PGj-P5mxXN4.0172.wav|그들이 여기서 떠났느니라 1243 | PGj-P5mxXN4.0173.wav|내가 그들의 말을 들으니 도단으로 가자 하더라 하니라 1244 | PGj-P5mxXN4.0174.wav|요셉이 그의 형들의 뒤를 따라 가서 도단에서 그들을 만나니라 1245 | PGj-P5mxXN4.0175.wav|요셉이 그들에게 가까이 오기 전에 그들이 요셉을 멀리서 보고 죽이기를 꾀하여 1246 | PGj-P5mxXN4.0176.wav|서로 이르되 1247 | PGj-P5mxXN4.0177.wav|꿈 꾸는 자가 오는도다 1248 | PGj-P5mxXN4.0178.wav|자 1249 | PGj-P5mxXN4.0179.wav|그를 죽여 한 구덩이에 던지고 우리가 말하기를 1250 | PGj-P5mxXN4.0180.wav|악한 짐승이 그를 잡아먹었다 하자 1251 | PGj-P5mxXN4.0181.wav|그의 꿈이 어떻게 되는지를 우리가 볼 것이니라 하는지라 1252 | PGj-P5mxXN4.0182.wav|르우벤이 듣고 요셉을 그들의 손에서 구원하려 하여 이르되 1253 | PGj-P5mxXN4.0183.wav|우리가 그의 생명은 해치지 말자 1254 | PGj-P5mxXN4.0184.wav|르우벤이 또 그들에게 이르되 피를 흘리지 말라 1255 | PGj-P5mxXN4.0185.wav|그를 광야 그 구덩이에 던지고 손을 그에게 대지 말라 하니 1256 | PGj-P5mxXN4.0186.wav|이는 그가 요셉을 그들의 손에서 구출하여 그의 아버지에게로 돌려보내려 함이었더라 1257 | PGj-P5mxXN4.0187.wav|요셉이 형들에게 이르매 그의 형들이 요셉의 옷 곧 그가 입은 채색옷을 벗기고 1258 | PGj-P5mxXN4.0188.wav|그를 잡아 구덩이에 던지니 그 구덩이는 빈 것이라 1259 | PGj-P5mxXN4.0189.wav|그 속에 물이 없었더라 1260 | PGj-P5mxXN4.0190.wav|그들이 앉아 음식을 먹다가 눈을 들어 본즉 1261 | PGj-P5mxXN4.0191.wav|한 무리의 이스마엘 사람들이 길르앗에서 오는데 1262 | PGj-P5mxXN4.0192.wav|그 낙타들에 향품과 유향과 몰약을 싣고 애굽으로 내려가는지라 1263 | PGj-P5mxXN4.0193.wav|유다가 자기 형제에게 이르되 1264 | PGj-P5mxXN4.0194.wav|우리가 우리 동생을 죽이고 그의 피를 덮어둔들 무엇이 유익할까 1265 | PGj-P5mxXN4.0195.wav|자 1266 | PGj-P5mxXN4.0196.wav|그를 이스마엘 사람들에게 팔고 그에게 우리 손을 대지 말자 1267 | PGj-P5mxXN4.0197.wav|그는 우리의 동생이요 우리의 혈육이니라 하매 1268 | PGj-P5mxXN4.0198.wav|그의 형제들이 청종하였더라 1269 | PGj-P5mxXN4.0199.wav|그 때에 미디안 사람 상인들이 지나가고 있는지라 1270 | PGj-P5mxXN4.0200.wav|형들이 요셉을 구덩이에서 끌어올리고 은 이십에 그를 이스마엘 사람들에게 팔매 1271 | PGj-P5mxXN4.0201.wav|그 상인들이 요셉을 데리고 애굽으로 갔더라 1272 | PGj-P5mxXN4.0202.wav|르우벤이 돌아와 구덩이에 이르러 본즉 1273 | PGj-P5mxXN4.0203.wav|거기 요셉이 없는지라 1274 | PGj-P5mxXN4.0204.wav|옷을 찢고 1275 | PGj-P5mxXN4.0205.wav|아우들에게로 되돌아와서 이르되 아이가 없도다 나는 어디로 갈까 1276 | PGj-P5mxXN4.0206.wav|그들이 요셉의 옷을 가져다가 숫염소를 죽여 그 옷을 피에 적시고 1277 | PGj-P5mxXN4.0207.wav|그의 채색옷을 보내어 그의 아버지에게로 가지고 가서 이르기를 1278 | PGj-P5mxXN4.0208.wav|우리가 이것을 발견하였으니 1279 | PGj-P5mxXN4.0209.wav|아버지 아들의 옷인가 보소서 하매 1280 | 3E_riEl-jiY.0000.wav|빌립보서 4장 1281 | 3E_riEl-jiY.0001.wav|그러므로 나를 사랑하고 사모하는 형제들 나의 기쁨이여 면류관인 사랑하는 자들아 1282 | 3E_riEl-jiY.0002.wav|이와 같이 주 안에서라 1283 | 3E_riEl-jiY.0003.wav|내가 유오디아를 권하고 순두게를 권하노니 1284 | 3E_riEl-jiY.0004.wav|주 안에서 같은 마음을 품으라 1285 | 3E_riEl-jiY.0005.wav|또 참으로 나와 멍에를 같이한 네게 구하노니 1286 | 3E_riEl-jiY.0006.wav|복음에 나와 함께 힘쓰던 저 여인들을 돕고 1287 | 3E_riEl-jiY.0007.wav|또한 글레멘드와 그 외에 나의 동역자들을 도우라 1288 | 3E_riEl-jiY.0008.wav|그 이름들이 생명책에 있느니라 1289 | 3E_riEl-jiY.0009.wav|주 안에서 항상 기뻐하라 내가 다시 말하노니 기뻐하라 1290 | 3E_riEl-jiY.0010.wav|너희 관용을 모든 사람에게 알게 하라 주꼐서 가까우시니라 1291 | 3E_riEl-jiY.0011.wav|아무 것도 염려하지 말고 다만 모든 일에 기도와 간구로, 너희 구할 것을 감사함으로 하나님께 아뢰라 1292 | 3E_riEl-jiY.0012.wav|그리하면 모든 지각에 뛰어난 하나님의 평강이 1293 | 3E_riEl-jiY.0013.wav|그리스도 예수 안에서 너희 마음과 생각을 지키시리라 1294 | 3E_riEl-jiY.0014.wav|끝으로 형제들아 무엇에든지 참되며 1295 | 3E_riEl-jiY.0015.wav|무엇에든지 경건하며 1296 | 3E_riEl-jiY.0016.wav|무엇에든지 옳으며 무엇에든지 정결하며 1297 | 3E_riEl-jiY.0017.wav|무엇에든지 사랑 받을 만하며 1298 | 3E_riEl-jiY.0018.wav|무엇에든지 칭찬 받을 만하며 1299 | 3E_riEl-jiY.0019.wav|무슨 덕이 있든지 무슨 기림이 있든지 이것들을 생각하라 1300 | 3E_riEl-jiY.0020.wav|너희는 내게 배우고 받고 듣고 본 바를 행하라 1301 | 3E_riEl-jiY.0021.wav|그리하면 평강의 하나님이 너희와 함께 계시리라 1302 | 3E_riEl-jiY.0022.wav|내가 주 안에서 크게 기뻐함은 1303 | 3E_riEl-jiY.0023.wav|너희가 나를 생각하던 것이 이제 다시 싹이 남이니 1304 | 3E_riEl-jiY.0024.wav|너희가 또한 이를 위하여 생각은 하였으나 기회가 없었느니라 1305 | 3E_riEl-jiY.0025.wav|내가 궁핍하므로 말하는 것이 아니니라 1306 | 3E_riEl-jiY.0026.wav|어떠한 형편에든지 나는 자족하기를 배웠노니 1307 | 3E_riEl-jiY.0027.wav|나는 비천에 처할 줄도 알고 풍부에 처할 줄도 알아 1308 | 3E_riEl-jiY.0028.wav|모든 일 곧 배부름과 배고픔과 풍부와 궁핍에도 처할 줄 아는 일체의 비결을 배웠노라 1309 | 3E_riEl-jiY.0029.wav|내게 능력 주시는 자 안에서 내가 모든 것을 할 수 있느니라 1310 | 3E_riEl-jiY.0030.wav|그러나 너희가 내 괴로움에 함꼐 참여하였으니 잘하였도다 1311 | 3E_riEl-jiY.0031.wav|빌립보 사람들아 너희도 알거니와 1312 | 3E_riEl-jiY.0032.wav|복음의 시초에 내가 마게도냐를 떠날 때에 주고 받는 내 일에 참여한 교회가 너희 외에 아무도 없었느니라 1313 | 3E_riEl-jiY.0033.wav|데살로니가에 있을 때에도 너희가 한 번뿐 아니라 두 번이나 나의 쓸 것을 보내었도다 1314 | 3E_riEl-jiY.0034.wav|내가 선물을 구함이 아니요 오직 너희에게 유익하도록 풍성한 열매를 구함이라 1315 | 3E_riEl-jiY.0035.wav|내게는 모든 것이 있고 또 풍부한지라 1316 | 3E_riEl-jiY.0036.wav|에바브로디도 편에 너희가 준 것을 받으므로 내가 풍족하니 1317 | 3E_riEl-jiY.0037.wav|이는 받으실 만한 향기로운 제물이요 하나님을 기쁘시게 한 것이라 1318 | 3E_riEl-jiY.0038.wav|나의 하나님이 1319 | AOBZbPJYrDM.0000.wav|에베소서 3장 1320 | AOBZbPJYrDM.0001.wav|이러므로 그리스도 예수의 일로 너희 이방인을 위하여 갇힌 자 된다 바울이 말하거니와 1321 | AOBZbPJYrDM.0002.wav|너희를 위하여 내게 주신 하나님의 그 은혜의 경륜을 너희가 들었을 터이라 1322 | AOBZbPJYrDM.0003.wav|곧 1323 | AOBZbPJYrDM.0004.wav|계시로 내게 비밀을 알게하신 것은 내가 먼저 간단히 기록함과 같으니 1324 | AOBZbPJYrDM.0005.wav|그것을 읽으면 내가 그리스도의 비밀을 깨달은 것을 너희가 알 수 있으리라 1325 | AOBZbPJYrDM.0006.wav|이제 그의 거룩한 사도들과 선지자들에게 성령으로 나타내신 것 같이 1326 | AOBZbPJYrDM.0007.wav|다른 세대에서는 사람의 아들들에게 알리지 아니하셨으니 이는 이방인들이 복음으로 말미암아 그리스도 예수 안에서 함께 상속자가 되고 1327 | AOBZbPJYrDM.0008.wav|함께 지체가 되고 함께 약속에 참여하는 자가 됨이라 1328 | AOBZbPJYrDM.0009.wav|이 복음을 위하여 그의 능력이 역사하시는 대로 내게 주신 하나님의 선물을 따라 내가 일꾼이 되었노라 1329 | AOBZbPJYrDM.0010.wav|모든 성도 중에 지극히 작은 자보다 더 작은 나에게 이 은혜를 주신 것은 측량할 수 없는 그리스도의 풍성함을 이방인에게 전하게 하시고 1330 | AOBZbPJYrDM.0011.wav|영원부터 만물을 창조하신 하나님 속에 감추어졌던 비밀의 경륜이 어떠한 것을 드러내게 하려 하심이라 1331 | AOBZbPJYrDM.0012.wav|이는 이제 교회로 말미암아 하늘에 있는 통치자들과 권세들에게 하나님의 각종 지혜를 알게 하려 하심이니 1332 | AOBZbPJYrDM.0013.wav|곧 영원부터 우리 주 그리스도 예수 안에서 예정하신 뜻대로 하신 것이라 1333 | AOBZbPJYrDM.0014.wav|우리가 그 안에서 그를 믿음으로 말미암아 담대함과 확신을 가지고 하나님께 나아감을 얻느니라 1334 | AOBZbPJYrDM.0015.wav|그러므로 너희에게 구하노니 1335 | AOBZbPJYrDM.0016.wav|너희를 위한 나의 여러 환난에 대하여 낙심하지 말라 1336 | AOBZbPJYrDM.0017.wav|이는 너희의 영광이니라 1337 | AOBZbPJYrDM.0018.wav|이러므로 내가 하늘과 땅에 있는 각 족속에게 이름을 주신 아버지 앞에 무릎을 꿇고 비노니 1338 | AOBZbPJYrDM.0019.wav|그의 영광의 풍성함을 따라 그의 성령으로 말미암아 너희 속사람을 능력으로 강건하게 하시오며 1339 | AOBZbPJYrDM.0020.wav|믿음으로 말미암아 그리스도께서 너희 마음에 계시게 하시옵고 1340 | AOBZbPJYrDM.0021.wav|너희가 사랑 가운데서 뿌리가 박히고 터가 굳어져서 1341 | AOBZbPJYrDM.0022.wav|능히 모든 성도와 함께 지식에 넘치는 그리스도의 사랑을 알고 1342 | AOBZbPJYrDM.0023.wav|그 너비와 길이와 높이와 깊이가 어떠함을 깨달아 1343 | AOBZbPJYrDM.0024.wav|하나님의 모든 충만하신 것으로 너희에게 충만하게 하시기를 구하노라 1344 | AOBZbPJYrDM.0025.wav|우리 가운데서 역사하시는 능력대로 1345 | AOBZbPJYrDM.0026.wav|우리가 구하거나 생각하는 모든 것에 더 넘치도록 능히 하실 이에게 회 안에서와 그리스도 예수 안에서 영광이 대대로 영원무궁하기를 원하노라 아멘 1346 | eROn9sGey3Y.0000.wav|마태복음 2장 1347 | eROn9sGey3Y.0001.wav|헤롯 왕 때에 예수께서 유대 베들레헴에서 나시매 동방으로부터 박사들이 예루살렘에 이르러 말하되 1348 | eROn9sGey3Y.0002.wav|유대인의 왕으로 나신 이가 어디 계시냐 1349 | eROn9sGey3Y.0003.wav|우리가 동방에서 그의 별을 보고 그에게 경배하러 왔노라 하니 1350 | eROn9sGey3Y.0004.wav|헤롯 왕과 온 예루살렘이 듣고 소동한지라 1351 | eROn9sGey3Y.0005.wav|왕이 모든 대제사장과 백성의 서기관들을 모아 그리스도가 어디서 나겠느냐 물으니 1352 | eROn9sGey3Y.0006.wav|이르되 유대 베들레헴이오니 1353 | eROn9sGey3Y.0007.wav|이는 선지자로 이렇게 기록된 바 1354 | eROn9sGey3Y.0008.wav|또 유대 땅 베들레헴아 너는 유대 고을 중에서 가장 작지 아니하도다 1355 | eROn9sGey3Y.0009.wav|네게서 한 다스리는 자가 나와서 내 백성 이스라엘의 목자가 되리라 하였음이니이다 1356 | eROn9sGey3Y.0010.wav|이에 헤롯이 가만히 박사들을 불러 별이 나타난 때를 자세히 묻고 1357 | eROn9sGey3Y.0011.wav|베들레헴으로 보내며 이르되 1358 | eROn9sGey3Y.0012.wav|가서 아기에 대하여 자세히 알아보고 찾거든 내게 고하여 나도 가서 그에게 경배하게 하라 1359 | eROn9sGey3Y.0013.wav|박사들이 왕의 말을 듣고 갈새 동방에서 보던 그 별이 문득 앞서 인도하여 가다가 1360 | eROn9sGey3Y.0014.wav|아기 있는 곳 위에 머물러 서 있는지라 1361 | eROn9sGey3Y.0015.wav|그들이 별을 보고 매우 크게 기뻐하고 기뻐하더라 1362 | eROn9sGey3Y.0016.wav|집에 들어가 아기와 그의 어머니 마리아가 함께 있는 것을 보고 엎드려 아기께 경배하고 보배합을 열어 황금과 유향과 몰약을 예물로 드리니라 1363 | eROn9sGey3Y.0017.wav|그들은 꿈에 헤롯에게로 돌아가지 말라 지시하심을 받아 다른 길로 고국에 돌아가니라 1364 | eROn9sGey3Y.0018.wav|그들이 떠난 후에 주의 사자가 요셉에게 현몽하여 이르되 1365 | eROn9sGey3Y.0019.wav|헤롯이 아기를 찾아 죽이려 하니 일어나 아기와 그의 어머니를 데리고 애굽으로 피하여 내가 네게 이르기까지 거기 있으라 하시니 1366 | eROn9sGey3Y.0020.wav|요셉이 일어나서 밤에 아기와 그의 어머니를 데리고 애굽으로 떠나가 1367 | eROn9sGey3Y.0021.wav|헤롯이 죽기까지 거기 있었으니 1368 | eROn9sGey3Y.0022.wav|이는 주께서 선지자를 통하여 말씀하신 바 1369 | eROn9sGey3Y.0023.wav|애굽으로부터 내 아들을 불렀다 함을 이루려 하심이라 1370 | eROn9sGey3Y.0024.wav|이에 헤롯이 박사들에게 속은 줄 알고 심히 노하여 사람을 보내어 1371 | eROn9sGey3Y.0025.wav|베들레헴과 그 모든 지경 안에 있는 사내아이를 박사들에게 자세히 알아본 그 때를 기준하여 1372 | eROn9sGey3Y.0026.wav|두 살부터 그 아래로 다 죽이니 1373 | eROn9sGey3Y.0027.wav|이에 선지자 예레미야를 통하여 말씀하신 바 1374 | eROn9sGey3Y.0028.wav|라마에서 슬퍼하며 크게 통곡하는 소리가 들리니 1375 | eROn9sGey3Y.0029.wav|라헬이 그 자식을 위하여 애곡하는 것이라 1376 | eROn9sGey3Y.0030.wav|그가 자식이 없으므로 위로 받기를 거절하였도다 함이 이루어졌느니라 1377 | eROn9sGey3Y.0031.wav|헤롯이 죽은 후에 주의 사자가 애굽에서 요셉에게 현몽하여 이르되 1378 | eROn9sGey3Y.0032.wav|일어나 아기와 그의 어머니를 데리고 이스라엘 땅으로 가라 1379 | eROn9sGey3Y.0033.wav|아기의 목숨을 찾던 자들이 죽었느니라 하시니 1380 | eROn9sGey3Y.0034.wav|요셉이 일어나 아기와 그의 어머니를 데리고 이스라엘 땅으로 들어가니라 1381 | eROn9sGey3Y.0035.wav|그러나 아켈라오가 그의 아버지 헤롯을 이어 유대의 임금 됨을 듣고 1382 | eROn9sGey3Y.0036.wav|거기로 가기를 무서워하더니 1383 | eROn9sGey3Y.0037.wav|꿈에 지시하심을 받아 갈릴리 지방으로 떠나가 1384 | eROn9sGey3Y.0038.wav|나사렛이란 동네에 가서 사니 1385 | eROn9sGey3Y.0039.wav|이는 선지자로 하신 말씀에 1386 | bVwGS4j5uDU.0000.wav|데살로니가전서 이장 1387 | bVwGS4j5uDU.0001.wav|형제들아 우리가 너희 가운데 들어간 것이 헛되지 않은 줄을 너희가 친히 아나니 1388 | bVwGS4j5uDU.0002.wav|너희가 아는 바와 같이 우리가 먼저 빌립보에서 고난과 능욕을 당하였으나 1389 | bVwGS4j5uDU.0003.wav|우리 하나님을 힘입어 많은 싸움 중에 하나님의 복음을 너희에게 전하였노라 1390 | bVwGS4j5uDU.0004.wav|우리의 권면은 간사함이나 부정에서 난 것이 아니요 1391 | bVwGS4j5uDU.0005.wav|속임수로 하는 것도 아니라 1392 | bVwGS4j5uDU.0006.wav|오직 하나님께 옳게 여기심을 입어 복음을 위탁 받았으니 1393 | bVwGS4j5uDU.0007.wav|우리가 이와 같이 말함은 사람을 기쁘게 하려 함이 아니요 1394 | bVwGS4j5uDU.0008.wav|오직 우리 마음을 감찰하시는 하나님을 기쁘시게 하려 함이라 1395 | bVwGS4j5uDU.0009.wav|너희도 알거니와 우리가 아무 때에도 아첨하는 말이나 탐심의 탈을 쓰지 아니한 것을 하나님이 증언하시느니라 1396 | bVwGS4j5uDU.0010.wav|또한 우리는 너희에게서든지 다른 이에게서든지 1397 | bVwGS4j5uDU.0011.wav|사람에게서는 영광을 구하지 아니하였노라 1398 | bVwGS4j5uDU.0012.wav|우리는 그리스도의 사도로서 마땅히 권위를 주장할 수 있으나 1399 | bVwGS4j5uDU.0013.wav|도리어 너희 가운데서 유순한 자가 되어 유모가 자기 자녀를 기름과 같이 하였으니 1400 | bVwGS4j5uDU.0014.wav|우리가 이같이 너희를 사모하여 하나님의 복음뿐 아니라 우리의 목숨까지도 너희에게 주기를 기뻐함은 1401 | bVwGS4j5uDU.0015.wav|너희가 우리의 사랑하는 자 됨이라 1402 | bVwGS4j5uDU.0016.wav|형제들아 1403 | bVwGS4j5uDU.0017.wav|우리의 수고와 애쓴 것을 너희가 기억하리니 1404 | bVwGS4j5uDU.0018.wav|너희 아무에게도 폐를 끼치지 아니하려고 밤낮으로 일하면서 1405 | bVwGS4j5uDU.0019.wav|너희에게 하나님의 복음을 전하였노라 1406 | bVwGS4j5uDU.0020.wav|우리가 너희 믿는 자들을 향하여 어떻게 거룩하고 옳고 흠 없이 행하였는지에 대하여 너희가 증인이요 하나님도 그러하시도다 1407 | bVwGS4j5uDU.0021.wav|너희도 아는 바와 같이 1408 | bVwGS4j5uDU.0022.wav|우리가 너희 각 사람에게 아버지가 자기 자녀에게 하듯 권면하고 위로하고 경계하노니 1409 | bVwGS4j5uDU.0023.wav|이는 너희를 부르사 자기 나라와 영광에 이르게 하시는 하나님께 합당히 행하게 하려 함이라 1410 | bVwGS4j5uDU.0024.wav|이러므로 우리가 하나님께 끊임없이 감사함은 1411 | bVwGS4j5uDU.0025.wav|너희가 우리에게 들은 바 하나님의 말씀을 받을 때에 1412 | bVwGS4j5uDU.0026.wav|사람의 말로 받지 아니하고 하나님의 말씀으로 받음이니 1413 | bVwGS4j5uDU.0027.wav|진실로 그러하도다 1414 | bVwGS4j5uDU.0028.wav|이 말씀이 또한 너희 믿는 자 가운데에서 역사하느니라 1415 | bVwGS4j5uDU.0029.wav|형제들아 1416 | bVwGS4j5uDU.0030.wav|너희가 그리스도 예수 안에서 유대에 있는 하나님의 교회들을 본받은 자 되었으니 1417 | bVwGS4j5uDU.0031.wav|그들이 유대인들에게 고난을 받음과 같이 너희도 너희 동족에게서 동일한 고난을 받았느니라 1418 | bVwGS4j5uDU.0032.wav|유대인은 주 예수와 선지자들을 죽이고 우리를 쫓아내고 하나님을 기쁘시게 하지 아니하고 모든 사람에게 대적이 되어 1419 | bVwGS4j5uDU.0033.wav|우리가 이방인에게 말하여 구원받게 함을 1420 | bVwGS4j5uDU.0034.wav|그들이 금하여 자기 죄를 항상 채우매 1421 | bVwGS4j5uDU.0035.wav|노하심이 끝까지 그들에게 임하였느니라 1422 | bVwGS4j5uDU.0036.wav|형제들아 1423 | bVwGS4j5uDU.0037.wav|우리가 잠시 너희를 떠난 것은 얼굴이요 마음은 아니니 1424 | bVwGS4j5uDU.0038.wav|너희 얼굴 보기를 열정으로 더욱 힘썼노라 1425 | bVwGS4j5uDU.0039.wav|그러므로 나 바울은 한번 두번 너희에게 가고자 하였으나 1426 | bVwGS4j5uDU.0040.wav|사탄이 우리를 막았도다 1427 | 3E_riEl-jiY.0039.wav|그리스도 예수 안에서 1428 | 3E_riEl-jiY.0040.wav|영광 가운데 그 풍성한 대로 너희 모든 쓸 것을 채우시리라 1429 | 3E_riEl-jiY.0041.wav|하나님 곧 우리 아버지께 세세 무궁하도록 영광을 돌릴지어다 아멘 1430 | 3E_riEl-jiY.0042.wav|그리스도 예수 안에 있는 성도에게 각각 문안하라 1431 | 3E_riEl-jiY.0043.wav|나와 함께 있는 형제들이 너희에게 문안하고 1432 | 3E_riEl-jiY.0044.wav|모든 성도들이 너희에게 문안하되 1433 | 3E_riEl-jiY.0045.wav|특히 가이사의 집 사람들 중 몇이니라 1434 | 3E_riEl-jiY.0046.wav|주 예수 그리스도 1435 | bVwGS4j5uDU.0041.wav|우리의 소망이나 기쁨이나 자랑의 면류관이 무엇이냐 1436 | bVwGS4j5uDU.0042.wav|그가 강림하실 때 우리 주 예수 앞에 너희가 아니냐 1437 | bVwGS4j5uDU.0043.wav|너희는 우리의 영광이요 기 1438 | PGj-P5mxXN4.0210.wav|아버지가 그것을 알아보고 이르되 내 아들의 옷이라 1439 | PGj-P5mxXN4.0211.wav|악한 짐승이 그를 잡아 먹었도다 1440 | PGj-P5mxXN4.0212.wav|요셉이 분명히 찢겼도다 하고 1441 | PGj-P5mxXN4.0213.wav|자기 옷을 찢고 굵은 베로 허리를 묶고 오래도록 그의 아들을 위하여 애통하니 1442 | PGj-P5mxXN4.0214.wav|그의 모든 자녀가 위로하되 1443 | PGj-P5mxXN4.0215.wav|그가 그 위로를 받지 아니하여 이르되 1444 | PGj-P5mxXN4.0216.wav|내가 슬퍼하며 스올로 내려가 아들에게로 가리라 하고 1445 | PGj-P5mxXN4.0217.wav|그의 아버지가 그를 위하여 울었더라 1446 | PGj-P5mxXN4.0218.wav|그 미디안 사람들은 그를 애굽에서 바로의 신하 친위대장 보디발에게 팔았더라 1447 | PGj-P5mxXN4.0219.wav|시편 11편 1448 | PGj-P5mxXN4.0220.wav|내가 여호와께 피하였거늘 너희가 내 영혼에게 새 같이 네 산으로 도망하라 함은 어찌함인가 1449 | PGj-P5mxXN4.0221.wav|악인이 활을 당기고 화살을 시위에 먹임이여 1450 | PGj-P5mxXN4.0222.wav|마음이 바른 자를 어두운 데서 쏘려 하는도다 1451 | PGj-P5mxXN4.0223.wav|터가 무너지면 의인이 무엇을 하랴 1452 | PGj-P5mxXN4.0224.wav|여호와께서는 그의 성전에 계시고 여호와의 보좌는 하늘에 있음이여 1453 | PGj-P5mxXN4.0225.wav|그의 눈이 인생을 통촉하시고 그의 안목이 그들을 감찰하시도다 1454 | PGj-P5mxXN4.0226.wav|여호와는 의인을 감찰하시고 1455 | PGj-P5mxXN4.0227.wav|악인과 폭력을 좋아하는 자를 마음에 미워하시도다 1456 | PGj-P5mxXN4.0228.wav|악인에게 그물을 던지시리니 1457 | PGj-P5mxXN4.0229.wav|불과 유황과 태우는 바람이 1458 | PGj-P5mxXN4.0230.wav|그들의 잔의 소득이 되리로다 1459 | PGj-P5mxXN4.0231.wav|여호와는 의로우사 의로운 일을 좋아하시나니 1460 | a7NPQ8mS1Ls.0000.wav|갈라디아서 육장 1461 | a7NPQ8mS1Ls.0001.wav|형제들아 사람이 만일 무슨 범죄한 일이 드러나거든 1462 | a7NPQ8mS1Ls.0002.wav|신령한 너희는 온유한 심령으로 그러한 자를 바로잡고 너 자신을 살펴보아 너도 시험을 받을까 두려워하라 1463 | a7NPQ8mS1Ls.0003.wav|너희가 짐을 서로 지라 1464 | a7NPQ8mS1Ls.0004.wav|그리하여 그리스도의 법을 성취하라 1465 | a7NPQ8mS1Ls.0005.wav|만일 누가 아무 것도 되지 못하고 된 줄로 생각하면 스스로 속임이라 1466 | a7NPQ8mS1Ls.0006.wav|각각 자기의 일을 살피라 1467 | a7NPQ8mS1Ls.0007.wav|그리하면 자랑할 것이 자기에게는 있어도 남에게는 있지 아니하리니 1468 | a7NPQ8mS1Ls.0008.wav|각각 자기의 짐을 질 것이라 1469 | a7NPQ8mS1Ls.0009.wav|가르침을 받는 자는 말씀을 가르치는 자와 모든 좋은 것을 함께 하라 1470 | a7NPQ8mS1Ls.0010.wav|스스로 속이지 말라 1471 | a7NPQ8mS1Ls.0011.wav|하나님은 업신여김을 받지 아니하시나니 1472 | a7NPQ8mS1Ls.0012.wav|사람이 무엇으로 심든지 그대로 거두리라 1473 | a7NPQ8mS1Ls.0013.wav|자기의 육체를 위하여 심는 자는 육체로부터 썩어질 것을 거두고 1474 | a7NPQ8mS1Ls.0014.wav|성령을 위하여 심는 자는 성령으로부터 영생을 거두리라 1475 | a7NPQ8mS1Ls.0015.wav|우리가 선을 행하되 낙심하지 말지니 1476 | a7NPQ8mS1Ls.0016.wav|포기하지 아니하면 때가 이르매 거두리라 1477 | a7NPQ8mS1Ls.0017.wav|그러므로 우리는 기회 있는 대로 모든 이에게 착한 일을 하되 더욱 믿음의 가정들에게 할지니라 1478 | a7NPQ8mS1Ls.0018.wav|내 손으로 너희에게 이렇게 큰 글자로 쓴 것을 보라 1479 | a7NPQ8mS1Ls.0019.wav|무릇 육체의 모양을 내려 하는 자들이 억지로 너희에게 할례를 받게 함은 1480 | a7NPQ8mS1Ls.0020.wav|그들이 그리스도의 십자가로 말미암아 박해를 면하려 함뿐이라 1481 | a7NPQ8mS1Ls.0021.wav|할례를 받은 그들이라도 스스로 율법은 지키지 아니하고 1482 | a7NPQ8mS1Ls.0022.wav|너희에게 할례를 받게 하려 하는 것은 1483 | a7NPQ8mS1Ls.0023.wav|그들이 너희의 육체로 자랑하려 함이라 그러나 내게는 우리 주 예수 그리스도의 십자가 외에 결코 자랑할 것이 없으니 1484 | a7NPQ8mS1Ls.0024.wav|그리스도로 말미암아 세상이 나를 대하여 십자가에 못 박히고 내가 또한 세상을 대하여 그러하니라 1485 | a7NPQ8mS1Ls.0025.wav|할례나 무할례가 아무 것도 아니로되 오직 새로 지으심을 받는 것만이 중요하니라 1486 | a7NPQ8mS1Ls.0026.wav|무릇 이 규례를 행하는 자에게와 1487 | a7NPQ8mS1Ls.0027.wav|하나님의 이스라엘에게 평강과 긍휼이 있을지어다 1488 | a7NPQ8mS1Ls.0028.wav|이 후로는 누구든지 나를 괴롭게 하지 말라 1489 | a7NPQ8mS1Ls.0029.wav|내가 내 몸에 예수의 흔적을 지니고 있노라 1490 | a7NPQ8mS1Ls.0030.wav|형제들아 1491 | a7NPQ8mS1Ls.0031.wav|우리 주 예수 그리스도의 은혜가 너희 심령에 있을지어다 1492 | NiDdvDoyhy8.0000.wav|골로새서 사장 1493 | NiDdvDoyhy8.0001.wav|상전들아 의와 공평을 종들에게 베풀지니 너희에게도 하늘에 상전이 계심을 알지어다 1494 | NiDdvDoyhy8.0002.wav|기도를 계속하고 기도에 감사함으로 깨어 있으라 1495 | NiDdvDoyhy8.0003.wav|또한 우리를 위하여 기도하되 1496 | NiDdvDoyhy8.0004.wav|하나님이 전도할 문을 우리에게 열어 주사 1497 | NiDdvDoyhy8.0005.wav|그리스도의 비밀을 말하게 하시기를 구하라 1498 | NiDdvDoyhy8.0006.wav|내가 이 일 때문에 매임을 당하였노라 1499 | NiDdvDoyhy8.0007.wav|그리하면 내가 마땅히 할 말로써 이 비밀을 나타내리라 1500 | NiDdvDoyhy8.0008.wav|외인에게 대해서는 지혜로 행하여 세월을 아끼라 1501 | NiDdvDoyhy8.0009.wav|너희 말을 항상 은혜 가운데서 소금으로 맛을 냄과 같이 하라 1502 | NiDdvDoyhy8.0010.wav|그리하면 각 사람에게 마땅히 대답할 것을 알리라 1503 | NiDdvDoyhy8.0011.wav|두기고가 내 사정을 다 너희에게 알려 주리니 그는 사랑 받는 형제요 신실한 일꾼이요 주 안에서 함께 종이 된 자니라 1504 | NiDdvDoyhy8.0012.wav|내가 그를 특별히 너희에게 보내는 것은 1505 | NiDdvDoyhy8.0013.wav|너희로 우리 사정을 알게 하고 1506 | NiDdvDoyhy8.0014.wav|너희 마음을 위로하게 하려 함이라 1507 | NiDdvDoyhy8.0015.wav|신실하고 사랑을 받는 형제 오네시모를 함께 보내노니 1508 | NiDdvDoyhy8.0016.wav|그는 너희에게서 온 사람이라 1509 | NiDdvDoyhy8.0017.wav|그들이 여기 일을 다 너희에게 알려 주리라 1510 | NiDdvDoyhy8.0018.wav|나와 함께 갇힌 아리스다고와 바나바의 생질 마가와 1511 | NiDdvDoyhy8.0019.wav|이 마가에 대하여 너희가 명을 받았으매 1512 | NiDdvDoyhy8.0020.wav|그가 이르거든 영접하라 1513 | NiDdvDoyhy8.0021.wav|유스도라 하는 예수도 너희에게 문안하느니라 1514 | NiDdvDoyhy8.0022.wav|그들은 할례파이나 이들만은 하나님의 나라를 위하여 함께 역사하는 자들이니 1515 | NiDdvDoyhy8.0023.wav|이런 사람들이 나의 위로가 되었느니라 1516 | NiDdvDoyhy8.0024.wav|그리스도 예수의 종인 너희에게서 온 에바브라가 너희에게 문안하느니라 1517 | NiDdvDoyhy8.0025.wav|그가 항상 너희를 위하여 애써 기도하여 1518 | NiDdvDoyhy8.0026.wav|너희로 하나님의 모든 뜻 가운데서 완전하고 확신 있게 서기를 구하나니 1519 | NiDdvDoyhy8.0027.wav|그가 너희와 라오디게아에 있는 자들과 1520 | NiDdvDoyhy8.0028.wav|히에라볼리에 있는 자들을 위하여 많이 수고하는 것을 내가 증언하노라 1521 | NiDdvDoyhy8.0029.wav|사랑을 받는 의사 누가와 또 데마가 너희에게 문안하느니라 1522 | NiDdvDoyhy8.0030.wav|라오디게아에 있는 형제들과 눔바와 그 여자의 집에 있는 교회에 문안하고 1523 | NiDdvDoyhy8.0031.wav|이 편지를 너희에게서 읽은 후에 라오디게아인의 교회에서도 읽게 하고 1524 | NiDdvDoyhy8.0032.wav|또 라오디게아로부터 오는 편지를 너희도 읽으라아킵보에게 이르기를 주 안에서 받은 직분을 삼가 이루라고 하라 1525 | NiDdvDoyhy8.0033.wav|나 바울은 친필로 문안하노니 1526 | NiDdvDoyhy8.0034.wav|내가 매인 것을 생각하라 1527 | RMcTmmGgHcw.0000.wav|에베소서 일장 1528 | RMcTmmGgHcw.0001.wav|하나님의 뜻으로 말미암아 그리스도 예수의 사도 된 바울은 1529 | RMcTmmGgHcw.0002.wav|에베소에 있는 성도들과 그리스도 예수 안에 있는 신실한 자들에게 편지하노니 1530 | RMcTmmGgHcw.0003.wav|하나님 우리 아버지와 주 예수 그리스도로부터 1531 | RMcTmmGgHcw.0004.wav|은혜와 평강이 너희에게 있을지어다 1532 | RMcTmmGgHcw.0005.wav|찬송하리로다 1533 | RMcTmmGgHcw.0006.wav|하나님 곧 우리 주 예수 그리스도의 아버지께서 그리스도 안에서 하늘에 속한 모든 신령한 복을 우리에게 주시되 1534 | RMcTmmGgHcw.0007.wav|곧 1535 | RMcTmmGgHcw.0008.wav|창세 전에 그리스도 안에서 우리를 택하사 1536 | RMcTmmGgHcw.0009.wav|우리로 사랑 안에서 그 앞에 거룩하고 흠이 없게 하시려고 1537 | RMcTmmGgHcw.0010.wav|그 기쁘신 뜻대로 우리를 예정하사 1538 | RMcTmmGgHcw.0011.wav|예수 그리스도로 말미암아 자기의 아들들이 되게 하셨으니이는 그가 사랑하시는 자 안에서 우리에게 거저 주시는 바 그의 은혜의 영광을 찬송하게 하려는 것이라 1539 | RMcTmmGgHcw.0012.wav|우리는 그리스도 안에서 그의 은혜의 풍성함을 따라 1540 | RMcTmmGgHcw.0013.wav|그의 피로 말미암아 속량 곧 죄 사함을 받았느니라 1541 | RMcTmmGgHcw.0014.wav|이는 그가 모든 지혜와 총명을 우리에게 넘치게 하사 1542 | RMcTmmGgHcw.0015.wav|그 뜻의 비밀을 우리에게 알리신 것이요 1543 | RMcTmmGgHcw.0016.wav|그의 기뻐하심을 따라 그리스도 안에서 때가 찬 경륜을 위하여 예정하신 것이니 1544 | RMcTmmGgHcw.0017.wav|하늘에 있는 것이나 땅에 있는 것이 다 그리스도 안에서 통일되게 하려 하심이라 1545 | RMcTmmGgHcw.0018.wav|모든 일을 그의 뜻의 결정대로 일하시는 이의 계획을 따라 1546 | RMcTmmGgHcw.0019.wav|우리가 예정을 입어 그 안에서 기업이 되었으니 1547 | RMcTmmGgHcw.0020.wav|이는 우리가 그리스도 안에서 전부터 바라던 그의 영광의 찬송이 되게 하려 하심이라 1548 | RMcTmmGgHcw.0021.wav|그 안에서 너희도 진리의 말씀 곧 너희의 구원의 복음을 듣고 그 안에서 또한 믿어 약속의 성령으로 인치심을 받았으니 이는 우리 기업의 보증이 되사 1549 | RMcTmmGgHcw.0022.wav|그 얻으신 것을 속량하시고 1550 | RMcTmmGgHcw.0023.wav|그의 영광을 찬송하게 하려 하심이라 1551 | RMcTmmGgHcw.0024.wav|이로 말미암아 주 예수 안에서 너희 믿음과 모든 성도를 향한 사랑을 나도 듣고 1552 | RMcTmmGgHcw.0025.wav|내가 기도할 때에 기억하며 너희로 말미암아 감사하기를 그치지 아니하고 1553 | RMcTmmGgHcw.0026.wav|우리 주 예수 그리스도의 하나님, 영광의 아버지께서 지혜와 계시의 영을 너희에게 주사 하나님을 알게 하시고 1554 | RMcTmmGgHcw.0027.wav|너희 마음의 눈을 밝히사 그의 부르심의 소망이 무엇이며 1555 | RMcTmmGgHcw.0028.wav|성도 안에서 그 기업의 영광의 풍성함이 무엇이며 그의 힘의 위력으로 역사하심을 따라 믿는 우리에게 베푸신 능력의 지극히 크심이 어떠한 것을 너희로 알게 하시기를 구하노라 1556 | RMcTmmGgHcw.0029.wav|그의 능력이 그리스도 안에서 역사하사 1557 | RMcTmmGgHcw.0030.wav|죽은 자들 가운데서 다시 살리시고 1558 | RMcTmmGgHcw.0031.wav|하늘에서 자기의 오른편에 앉히사 1559 | RMcTmmGgHcw.0032.wav|모든 통치와 권세와 능력과 주권과 이 세상뿐 아니라 오는 세상에 일컫는 모든 이름 위에 뛰어나게 하시고 1560 | RMcTmmGgHcw.0033.wav|또 만물을 그의 발 아래에 복종하게 하시고 1561 | RMcTmmGgHcw.0034.wav|그를 만물 위에 교회의 머리로 삼으셨느니라 1562 | RMcTmmGgHcw.0035.wav|교회는 그의 몸이니 1563 | -Yj9dOPRpXg.0000.wav|에베소서 이장 1564 | -Yj9dOPRpXg.0001.wav|그는 허물과 죄로 죽었던 너희를 살리셨도다 1565 | -Yj9dOPRpXg.0002.wav|그 때에 너희는 그 가운데서 행하여 이 세상 풍조를 따르고 1566 | -Yj9dOPRpXg.0003.wav|공중의 권세 잡은 자를 따랐으니 곧 지금 불순종의 아들들 가운데서 역사하는 영이라 1567 | -Yj9dOPRpXg.0004.wav|전에는 우리도 다 그 가운데서 우리 육체의 욕심을 따라 지내며 육체와 마음의 원하는 것을 하여 다른 이들과 같이 본질상 진노의 자녀이었더니 1568 | -Yj9dOPRpXg.0005.wav|긍휼이 풍성하신 하나님이 우리를 사랑하신 그 큰 사랑을 인하여 1569 | -Yj9dOPRpXg.0006.wav|허물로 죽은 우리를 그리스도와 함께 살리셨고 1570 | -Yj9dOPRpXg.0007.wav|너희는 은혜로 구원을 받은 것이라 1571 | -Yj9dOPRpXg.0008.wav|또 함께 일으키사 그리스도 예수 안에서 함께 하늘에 앉히시니 1572 | -Yj9dOPRpXg.0009.wav|이는 그리스도 예수 안에서 우리에게 자비하심으로써 그 은혜의 지극히 풍성함을 오는 여러 세대에 나타내려 하심이라 1573 | -Yj9dOPRpXg.0010.wav|너희는 그 은혜에 의하여 믿음으로 말미암아 구원을 받았으니 1574 | -Yj9dOPRpXg.0011.wav|이것은 너희에게서 난 것이 아니요 하나님의 선물이라 1575 | -Yj9dOPRpXg.0012.wav|행위에서 난 것이 아니니 이는 누구든지 자랑하지 못하게 함이라 1576 | -Yj9dOPRpXg.0013.wav|우리는 그가 만드신 바라 1577 | -Yj9dOPRpXg.0014.wav|그리스도 예수 안에서 선한 일을 위하여 지으심을 받은 자니 1578 | -Yj9dOPRpXg.0015.wav|이 일은 하나님이 전에 예비하사 1579 | -Yj9dOPRpXg.0016.wav|우리로 그 가운데서 행하게 하려 하심이니라 1580 | -Yj9dOPRpXg.0017.wav|그러므로 생각하라 1581 | -Yj9dOPRpXg.0018.wav|너희는 그 때에 육체로는 이방인이요 손으로 육체에 행한 할례를 받은 무리라 칭하는 자들로부터 할례를 받지 않은 무리라 칭함을 받는 자들이라 1582 | -Yj9dOPRpXg.0019.wav|그 때에 너희는 그리스도 밖에 있었고 이스라엘 나라 밖의 사람이라 1583 | -Yj9dOPRpXg.0020.wav|약속의 언약들에 대하여는 외인이요 1584 | -Yj9dOPRpXg.0021.wav|세상에서 소망이 없고 하나님도 없는 자이더니 1585 | -Yj9dOPRpXg.0022.wav|이제는 전에 멀리 있던 너희가 그리스도 예수 안에서 1586 | -Yj9dOPRpXg.0023.wav|그리스도의 피로 가까워졌느니라 그는 우리의 화평이신지라 1587 | -Yj9dOPRpXg.0024.wav|둘로 하나를 만드사 원수 된 것 곧 중간에 막힌 담을 자기 육체로 허시고 1588 | -Yj9dOPRpXg.0025.wav|법조문으로 된 계명의 율법을 폐하셨으니 1589 | -Yj9dOPRpXg.0026.wav|이는 이 둘로 자기 안에서 한 새 사람을 지어 화평하게 하시고 1590 | -Yj9dOPRpXg.0027.wav|또 십자가로 이 둘을 한 몸으로 1591 | -Yj9dOPRpXg.0028.wav|하나님과 화목하게 하려 하심이라 1592 | -Yj9dOPRpXg.0029.wav|원수 된 것을 십자가로 소멸하시고 1593 | -Yj9dOPRpXg.0030.wav|또 오셔서 먼 데 있는 너희에게 평안을 전하시고 1594 | -Yj9dOPRpXg.0031.wav|가까운 데 있는 자들에게 평안을 전하셨으니 1595 | -Yj9dOPRpXg.0032.wav|이는 그로 말미암아 우리 둘이 한 성령 안에서 1596 | -Yj9dOPRpXg.0033.wav|아버지께 나아감을 얻게 하려 하심이라 1597 | -Yj9dOPRpXg.0034.wav|그러므로 이제부터 너희는 외인도 아니요 나그네도 아니요 오직 성도들과 동일한 시민이요 하나님의 권속이라 너희는 사도들과 선지자들의 터 위에 세우심을 입은 자라 1598 | -Yj9dOPRpXg.0035.wav|그리스도 예수께서 친히 모퉁잇돌이 되셨느니라 1599 | -Yj9dOPRpXg.0036.wav|그의 안에서 건물마다 서로 연결하여 주 안에서 성전이 되어 가고 1600 | -Yj9dOPRpXg.0037.wav|너희도 성령 안에서 하나님이 거하실 처소가 되기 위하여 1601 | -Yj9dOPRpXg.0038.wav|그리스도 예수 안에서 함께 1602 | Nc8W5j5Pg74.0000.wav|마태복음 사장 1603 | Nc8W5j5Pg74.0001.wav|그 때에 예수께서 성령에게 이끌리어 마귀에게 시험을 받으러 광야로 가사 1604 | Nc8W5j5Pg74.0002.wav|사십 일을 밤낮으로 금식하신 후에 주리신지라 1605 | Nc8W5j5Pg74.0003.wav|시험하는 자가 예수께 나아와서 이르되 1606 | Nc8W5j5Pg74.0004.wav|네가 만일 하나님의 아들이어든 명하여 이 돌들로 떡덩이가 되게 하라 1607 | Nc8W5j5Pg74.0005.wav|예수께서 대답하여 이르시되 기록되었으되 사람이 떡으로만 살 것이 아니요 1608 | Nc8W5j5Pg74.0006.wav|하나님의 입으로부터 나오는 모든 말씀으로 살 것이라 하였느니라 하시니 1609 | Nc8W5j5Pg74.0007.wav|이에 마귀가 예수를 거룩한 성으로 데려다가 성전 꼭대기에 세우고 1610 | Nc8W5j5Pg74.0008.wav|이르되 네가 만일 하나님의 아들이어든 뛰어내리라 1611 | Nc8W5j5Pg74.0009.wav|기록되었으되 1612 | Nc8W5j5Pg74.0010.wav|그가 너를 위하여 그의 사자들을 명하시리니 1613 | Nc8W5j5Pg74.0011.wav|그들이 손으로 너를 받들어 발이 돌에 부딪치지 않게 하리로다 하였느니라 1614 | Nc8W5j5Pg74.0012.wav|예수께서 이르시되 1615 | Nc8W5j5Pg74.0013.wav|또 기록되었으되 주 너의 하나님을 시험하지 말라 하였느니라 하시니 1616 | Nc8W5j5Pg74.0014.wav|마귀가 또 그를 데리고 지극히 높은 산으로 가서 1617 | Nc8W5j5Pg74.0015.wav|천하 만국과 그 영광을 보여 이르되 만일 내게 엎드려 경배하면 이 모든 것을 네게 주리라 1618 | Nc8W5j5Pg74.0016.wav|이에 예수께서 말씀하시되 사탄아 물러가라 1619 | Nc8W5j5Pg74.0017.wav|기록되었으되 주 너의 하나님께 경배하고 다만 그를 섬기라 하였느니라 1620 | Nc8W5j5Pg74.0018.wav|이에 마귀는 예수를 떠나고 천사들이 나아와서 수종드니라 1621 | Nc8W5j5Pg74.0019.wav|예수께서 요한이 잡혔음을 들으시고 갈릴리로 물러가셨다가 1622 | Nc8W5j5Pg74.0020.wav|나사렛을 떠나 스불론과 납달리 지경 해변에 있는 가버나움에 가서 사시니 1623 | Nc8W5j5Pg74.0021.wav|이는 선지자 이사야를 통하여 하신 말씀을 이루려 하심이라 1624 | Nc8W5j5Pg74.0022.wav|일렀으되 1625 | Nc8W5j5Pg74.0023.wav|스불론 땅과 납달리 땅과 요단 강 저편 해변 길과 1626 | Nc8W5j5Pg74.0024.wav|이방의 갈릴리여 1627 | Nc8W5j5Pg74.0025.wav|흑암에 앉은 백성이 큰 빛을 보았고 1628 | Nc8W5j5Pg74.0026.wav|사망의 땅과 그늘에 앉은 자들에게 빛이 비치었도다 하였느니라 1629 | Nc8W5j5Pg74.0027.wav|이 때부터 예수께서 비로소 전파하여 이르시되 1630 | Nc8W5j5Pg74.0028.wav|회개하라 천국이 가까이 왔느니라 하시더라 1631 | Nc8W5j5Pg74.0029.wav|갈릴리 해변에 다니시다가 두 형제 곧 베드로라 하는 시몬과 1632 | Nc8W5j5Pg74.0030.wav|그의 형제 안드레가 바다에 그물 던지는 것을 보시니 그들은 어부라 1633 | Nc8W5j5Pg74.0031.wav|말씀하시되 1634 | Nc8W5j5Pg74.0032.wav|나를 따라오라 내가 너희를 사람을 낚는 어부가 되게 하리라 하시니 1635 | Nc8W5j5Pg74.0033.wav|그들이 곧 그물을 버려 두고 예수를 따르니라 1636 | Nc8W5j5Pg74.0034.wav|거기서 더 가시다가 다른 두 형제 곧 세베대의 아들 야고보와 1637 | Nc8W5j5Pg74.0035.wav|그의 형제 요한이 그의 아버지 세베대와 함께 배에서 그물 깁는 것을 보시고 부르시니 1638 | Nc8W5j5Pg74.0036.wav|그들이 곧 배와 아버지를 버려 두고 예수를 따르니라 예수께서 온 갈릴리에 두루 다니사 그들의 회당에서 가르치시며 천국 복음을 전파하시며 백성 중의 모든 병과 모든 약한 것을 고치시니 1639 | Nc8W5j5Pg74.0037.wav|그의 소문이 온 수리아에 퍼진지라 1640 | Nc8W5j5Pg74.0038.wav|사람들이 모든 앓는 자 곧 각종 병에 걸려서 고통 당하는 자 1641 | Nc8W5j5Pg74.0039.wav|귀신 들린 자, 간질하는 자, 중풍병자들을 데려오니 그들을 고치시더라 1642 | Nc8W5j5Pg74.0040.wav|갈릴리와 데가볼리와 예루살렘과 유대와 요단 강 건너편에서 수많은 무리가 1643 | OYWmtkhSU2w.0000.wav|골로새서 삼장 1644 | OYWmtkhSU2w.0001.wav|그러므로 너희가 그리스도와 함께 다시 살리심을 받았으면 위의 것을 찾으라 1645 | OYWmtkhSU2w.0002.wav|거기는 그리스도께서 하나님 우편에 앉아 계시느니라 1646 | OYWmtkhSU2w.0003.wav|위의 것을 생각하고 땅의 것을 생각하지 말라 1647 | OYWmtkhSU2w.0004.wav|이는 너희가 죽었고 너희 생명이 그리스도와 함께 하나님 안에 감추어졌음이라 1648 | OYWmtkhSU2w.0005.wav|우리 생명이신 그리스도께서 나타나실 그 때에 너희도 그와 함께 영광 중에 나타나리라 1649 | OYWmtkhSU2w.0006.wav|그러므로 땅에 있는 지체를 죽이라 곧 음란과 부정과 사욕과 악한 정욕과 탐심이니 1650 | OYWmtkhSU2w.0007.wav|탐심은 우상 숭배니라 1651 | OYWmtkhSU2w.0008.wav|이것들로 말미암아 하나님의 진노가 임하느니라 1652 | OYWmtkhSU2w.0009.wav|너희도 전에 그 가운데 살 때에는 그 가운데서 행하였으나 1653 | OYWmtkhSU2w.0010.wav|이제는 너희가 이 모든 것을 벗어 버리라 1654 | OYWmtkhSU2w.0011.wav|곧 분함과 노여움과 악의와 비방과 1655 | OYWmtkhSU2w.0012.wav|너희 입의 부끄러운 말이라 1656 | OYWmtkhSU2w.0013.wav|너희가 서로 거짓말을 하지 말라 옛 사람과 그 행위를 벗어 버리고 새 사람을 입었으니 이는 자기를 창조하신 이의 형상을 따라 1657 | OYWmtkhSU2w.0014.wav|지식에까지 새롭게 하심을 입은 자니라 1658 | OYWmtkhSU2w.0015.wav|거기에는 헬라인이나 유대인이나 할례파나 무할례파나 1659 | OYWmtkhSU2w.0016.wav|야만인이나 스구디아인이나 1660 | OYWmtkhSU2w.0017.wav|종이나 자유인이 차별이 있을 수 없나니 1661 | OYWmtkhSU2w.0018.wav|오직 그리스도는 만유시요 만유 안에 계시니라 1662 | OYWmtkhSU2w.0019.wav|그러므로 너희는 하나님이 택하사 거룩하고 사랑 받는 자처럼 긍휼과 자비와 겸손과 온유와 오래 참음을 옷 입고 1663 | OYWmtkhSU2w.0020.wav|누가 누구에게 불만이 있거든 서로 용납하여 피차 용서하되 1664 | OYWmtkhSU2w.0021.wav|주께서 너희를 용서하신 것 같이 너희도 그리하고 1665 | OYWmtkhSU2w.0023.wav|이는 온전하게 매는 띠니라 1666 | OYWmtkhSU2w.0024.wav|그리스도의 평강이 너희 마음을 주장하게 하라 1667 | OYWmtkhSU2w.0025.wav|너희는 평강을 위하여 한 몸으로 부르심을 받았나니 1668 | OYWmtkhSU2w.0026.wav|너희는 또한 감사하는 자가 되라 1669 | OYWmtkhSU2w.0027.wav|그리스도의 말씀이 너희 속에 풍성히 거하여 모든 지혜로 피차 가르치며 권면하고 1670 | OYWmtkhSU2w.0028.wav|시와 찬송과 신령한 노래를 부르며 감사하는 마음으로 하나님을 찬양하고 1671 | OYWmtkhSU2w.0029.wav|또 무엇을 하든지 말에나 일에나 다 주 예수의 이름으로 하고 1672 | OYWmtkhSU2w.0030.wav|그를 힘입어 하나님 아버지께 감사하라 1673 | OYWmtkhSU2w.0031.wav|아내들아 남편에게 복종하라 이는 주 안에서 마땅하니라 1674 | OYWmtkhSU2w.0032.wav|남편들아 아내를 사랑하며 괴롭게 하지 말라 1675 | OYWmtkhSU2w.0033.wav|자녀들아 모든 일에 부모에게 순종하라 1676 | OYWmtkhSU2w.0034.wav|이는 주 안에서 기쁘게 하는 것이니라 1677 | OYWmtkhSU2w.0035.wav|아비들아 너희 자녀를 노엽게 하지 말지니 낙심할까 함이라 1678 | OYWmtkhSU2w.0036.wav|종들아 모든 일에 육신의 상전들에게 순종하되 1679 | OYWmtkhSU2w.0037.wav|사람을 기쁘게 하는 자와 같이 눈가림만 하지 말고 1680 | OYWmtkhSU2w.0038.wav|오직 주를 두려워하여 성실한 마음으로 하라 1681 | OYWmtkhSU2w.0039.wav|무슨 일을 하든지 마음을 다하여 주께 하듯 하고 사람에게 하듯 하지 말라 1682 | OYWmtkhSU2w.0040.wav|이는 기업의 상을 주께 받을 줄 아나니 1683 | OYWmtkhSU2w.0041.wav|너희는 주 그리스도를 섬기느니라 1684 | OYWmtkhSU2w.0042.wav|불의를 행하는 자는 불의의 보응을 받으리니 1685 | brYyskrMDBc.0000.wav|에베소서 육장 1686 | brYyskrMDBc.0001.wav|자녀들아 주 안에서 너희 부모에게 순종하라 이것이 옳으니라 1687 | brYyskrMDBc.0002.wav|네 아버지와 어머니를 공경하라 이것은 약속이 있는 첫 계명이니 1688 | brYyskrMDBc.0003.wav|이로써 네가 잘되고 땅에서 장수하리라 1689 | brYyskrMDBc.0004.wav|또 아비들아 너희 자녀를 노엽게 하지 말고 1690 | brYyskrMDBc.0005.wav|오직 주의 교훈과 훈계로 양육하라 1691 | brYyskrMDBc.0006.wav|종들아 두려워하고 떨며 성실한 마음으로 육체의 상전에게 순종하기를 1692 | brYyskrMDBc.0007.wav|그리스도께 하듯 하라 1693 | brYyskrMDBc.0008.wav|눈가림만 하여 사람을 기쁘게 하는 자처럼 하지 말고 1694 | brYyskrMDBc.0009.wav|그리스도의 종들처럼 마음으로 하나님의 뜻을 행하고 1695 | brYyskrMDBc.0010.wav|기쁜 마음으로 섬기기를 주께 하듯 하고 1696 | brYyskrMDBc.0011.wav|사람들에게 하듯 하지 말라 1697 | brYyskrMDBc.0012.wav|이는 각 사람이 무슨 선을 행하든지 1698 | brYyskrMDBc.0013.wav|종이나 자유인이나 주께로부터 그대로 받을 줄을 앎이라 1699 | brYyskrMDBc.0014.wav|상전들아 1700 | brYyskrMDBc.0015.wav|너희도 그들에게 이와 같이 하고 위협을 그치라 1701 | brYyskrMDBc.0016.wav|이는 그들과 너희의 상전이 하늘에 계시고 1702 | brYyskrMDBc.0017.wav|그에게는 사람을 외모로 취하는 일이 없는 줄 너희가 앎이라 1703 | brYyskrMDBc.0018.wav|끝으로 너희가 주 안에서와 그 힘의 능력으로 강건하여지고 1704 | brYyskrMDBc.0019.wav|마귀의 간계를 능히 대적하기 위하여 1705 | brYyskrMDBc.0020.wav|하나님의 전신 갑주를 입으라 1706 | brYyskrMDBc.0021.wav|우리의 씨름은 혈과 육을 상대하는 것이 아니요 1707 | brYyskrMDBc.0022.wav|통치자들과 권세들과 이 어둠의 세상 주관자들과 1708 | brYyskrMDBc.0023.wav|하늘에 있는 악의 영들을 상대함이라 1709 | brYyskrMDBc.0024.wav|그러므로 하나님의 전신 갑주를 취하라 1710 | brYyskrMDBc.0025.wav|이는 악한 날에 너희가 능히 대적하고 1711 | brYyskrMDBc.0026.wav|모든 일을 행한 후에 서기 위함이라 1712 | brYyskrMDBc.0027.wav|그런즉 서서 진리로 너희 허리 띠를 띠고 의의 호심경을 붙이고 1713 | brYyskrMDBc.0028.wav|평안의 복음이 준비한 것으로 신을 신고 1714 | brYyskrMDBc.0029.wav|모든 것 위에 믿음의 방패를 가지고 1715 | brYyskrMDBc.0030.wav|이로써 능히 악한 자의 모든 불화살을 소멸하고 1716 | brYyskrMDBc.0031.wav|구원의 투구와 성령의 검 곧 하나님의 말씀을 가지라 1717 | brYyskrMDBc.0032.wav|모든 기도와 간구를 하되 1718 | brYyskrMDBc.0033.wav|항상 성령 안에서 기도하고 1719 | brYyskrMDBc.0034.wav|이를 위하여 깨어 구하기를 항상 힘쓰며 1720 | brYyskrMDBc.0035.wav|여러 성도를 위하여 구하라 1721 | brYyskrMDBc.0036.wav|또 나를 위하여 구할 것은 내게 말씀을 주사 1722 | brYyskrMDBc.0037.wav|나로 입을 열어 복음의 비밀을 담대히 알리게 하옵소서 할 것이니 1723 | brYyskrMDBc.0038.wav|이 일을 위하여 내가 쇠사슬에 매인 사신이 된 것은 1724 | brYyskrMDBc.0039.wav|나로 이 일에 당연히 할 말을 담대히 하게 하려 하심이라 1725 | brYyskrMDBc.0040.wav|나의 사정 곧 내가 무엇을 하는지 너희에게도 알리려 하노니 1726 | brYyskrMDBc.0041.wav|사랑을 받은 형제요 주 안에서 진실한 일꾼인 두기고가 모든 일을 너희에게 알리리라 1727 | brYyskrMDBc.0042.wav|우리 사정을 알리고 또 너희 마음을 위로하기 위하여 내가 특별히 그를 너희에게 보내었노라 1728 | brYyskrMDBc.0043.wav|아버지 하나님과 주 예수 그리스도께로부터 평안과 믿음을 겸한 사랑이 형제들에게 있을지어다 1729 | brYyskrMDBc.0044.wav|우리 주 예수 그리스도를 변함 없이 사랑하는 모든 자에게 1730 | hO6-XPIJwxc.0000.wav|빌립보서 일장 1731 | hO6-XPIJwxc.0001.wav|그리스도 예수의 종 바울과 디모데는 그리스도 예수 안에서 빌립보에 사는 모든 성도와 또한 감독들과 집사들에게 편지하노니 1732 | hO6-XPIJwxc.0002.wav|하나님 우리 아버지와 주 예수 그리스도로부터 은혜와 평강이 너희에게 있을지어다 1733 | hO6-XPIJwxc.0003.wav|내가 너희를 생각할 때마다 나의 하나님께 감사하며 간구할 때마다 너희 무리를 위하여 기쁨으로 항상 간구함은 1734 | hO6-XPIJwxc.0004.wav|너희가 첫날부터 이제까지 복음을 위한 일에 참여하고 있기 때문이라 너희 안에서 착한 일을 시작하신 이가 그리스도 예수의 날까지 이루실 줄을 우리는 확신하노라 1735 | hO6-XPIJwxc.0005.wav|내가 너희 무리를 위하여 이와 같이 생각하는 것이 마땅하니 1736 | hO6-XPIJwxc.0006.wav|이는 너희가 내 마음에 있음이며 나의 매임과 복음을 변명함과 확정함에 1737 | hO6-XPIJwxc.0007.wav|너희가 다 나와 함께 은혜에 참여한 자가 됨이라 1738 | hO6-XPIJwxc.0008.wav|내가 예수 그리스도의 심장으로 너희 무리를 얼마나 사모하는지 1739 | hO6-XPIJwxc.0009.wav|하나님이 내 증인이시니라 1740 | hO6-XPIJwxc.0010.wav|내가 기도하노라 1741 | hO6-XPIJwxc.0011.wav|너희 사랑을 지식과 모든 총명으로 점점 더 풍성하게 하사 1742 | hO6-XPIJwxc.0012.wav|너희로 지극히 선한 것을 분별하며 1743 | hO6-XPIJwxc.0013.wav|또 진실하여 허물 없이 그리스도의 날까지 이르고 1744 | hO6-XPIJwxc.0014.wav|예수 그리스도로 말미암아 의의 열매가 가득하여 1745 | hO6-XPIJwxc.0015.wav|하나님의 영광과 찬송이 되기를 원하노라 1746 | hO6-XPIJwxc.0016.wav|형제들아 내가 당한 일이 도리어 복음 전파에 진전이 된 줄을 너희가 알기를 원하노라 1747 | hO6-XPIJwxc.0017.wav|이러므로 나의 매임이 그리스도 안에서 모든 시위대 안과 그 밖의 모든 사람에게 나타났으니 1748 | hO6-XPIJwxc.0018.wav|형제 중 다수가 나의 매임으로 말미암아 주 안에서 신뢰함으로 겁 없이 하나님의 말씀을 더욱 담대히 전하게 되었느니라 1749 | hO6-XPIJwxc.0019.wav|어떤 이들은 투기와 분쟁으로, 어떤 이들은 착한 뜻으로 그리스도를 전파하나니 1750 | hO6-XPIJwxc.0020.wav|이들은 내가 복음을 변증하기 위하여 세우심을 받은 줄 알고 사랑으로 하나 1751 | hO6-XPIJwxc.0021.wav|그들은 나의 매임에 괴로움을 더하게 할 줄로 생각하여 순수하지 못하게 다툼으로 그리스도를 전파하느니라 1752 | hO6-XPIJwxc.0022.wav|그러면 무엇이냐 1753 | hO6-XPIJwxc.0023.wav|겉치레로 하나 참으로 하나 무슨 방도로 하든지 전파되는 것은 그리스도니 1754 | hO6-XPIJwxc.0024.wav|이로써 나는 기뻐하고 또한 기뻐하리라 1755 | hO6-XPIJwxc.0025.wav|이것이 너희의 간구와 예수 그리스도의 성령의 도우심으로 나를 구원에 이르게 할 줄 아는 고로 1756 | hO6-XPIJwxc.0026.wav|나의 간절한 기대와 소망을 따라 아무 일에든지 부끄러워하지 아니하고 1757 | hO6-XPIJwxc.0027.wav|지금도 전과 같이 온전히 담대하여 1758 | hO6-XPIJwxc.0028.wav|살든지 죽든지 내 몸에서 그리스도가 존귀하게 되게 하려 하나니 1759 | hO6-XPIJwxc.0029.wav|이는 내게 사는 것이 그리스도니 죽는 것도 유익함이라 1760 | hO6-XPIJwxc.0030.wav|그러나 만일 육신으로 사는 이것이 내 일의 열매일진대 1761 | hO6-XPIJwxc.0031.wav|무엇을 택해야 할는지 나는 알지 못하노라 1762 | hO6-XPIJwxc.0032.wav|내가 그 둘 사이에 끼었으니 1763 | hO6-XPIJwxc.0033.wav|차라리 세상을 떠나서 그리스도와 함께 있는 것이 훨씬 더 좋은 일이라 그렇게 하고 싶으나 1764 | hO6-XPIJwxc.0034.wav|내가 육신으로 있는 것이 너희를 위하여 더 유익하리라 내가 살 것과 1765 | hO6-XPIJwxc.0035.wav|너희 믿음의 진보와 기쁨을 위하여 너희 무리와 함께 거할 이것을 확실히 아노니 내가 다시 너희와 같이 있음으로 그리스도 예수 안에서 너희 자랑이 나로 말미암아 풍성하게 하려 함이라 1766 | hO6-XPIJwxc.0036.wav|오직 너희는 그리스도의 복음에 합당하게 생활하라 1767 | hO6-XPIJwxc.0037.wav|이는 내가 너희에게 가 보나 떠나 있으나 1768 | hO6-XPIJwxc.0038.wav|너희가 한마음으로 서서 한 뜻으로 복음의 신앙을 위하여 협력하는 것과 1769 | hO6-XPIJwxc.0039.wav|무슨 일에든지 대적하는 자들 때문에 두려워하지 아니하는 이 일을 듣고자 함이라 1770 | hO6-XPIJwxc.0040.wav|이것이 그들에게는 멸망의 증거요 너희에게는 구원의 증거니 1771 | hO6-XPIJwxc.0041.wav|이는 하나님께로부터 난 것이라 1772 | hO6-XPIJwxc.0042.wav|그리스도를 위하여 너희에게 은혜를 주신 것은 1773 | hO6-XPIJwxc.0043.wav|다만 그를 믿을 뿐 아니라 1774 | hO6-XPIJwxc.0044.wav|또한 그를 위하여 고난도 받게 하려 하심이라 1775 | hO6-XPIJwxc.0045.wav|너희에게도 그와 같은 싸움이 있으니 1776 | hO6-XPIJwxc.0046.wav|너희가 내 안에서 본 바요 1777 | hO6-XPIJwxc.0047.wav|이제도 내 안에서 1778 | bda3Xxbo2Xc.0000.wav|갈라디아서 사장 1779 | bda3Xxbo2Xc.0001.wav|내가 또 말하노니 유업을 이을 자가 모든 것의 주인이나 어렸을 동안에는 종과 다름이 없어서 1780 | bda3Xxbo2Xc.0002.wav|그 아버지가 정한 때까지 후견인과 청지기 아래에 있나니 이와 같이 우리도 어렸을 때에 이 세상의 1)초등학문 아래에 있어서 종 노릇 하였더니 1781 | bda3Xxbo2Xc.0003.wav|때가 차매 1782 | bda3Xxbo2Xc.0004.wav|하나님이 그 아들을 보내사 여자에게서 나게 하시고 1783 | bda3Xxbo2Xc.0005.wav|율법 아래에 나게 하신 것은 1784 | bda3Xxbo2Xc.0006.wav|율법 아래에 있는 자들을 속량하시고 1785 | bda3Xxbo2Xc.0007.wav|우리로 아들의 명분을 얻게 하려 하심이라 1786 | bda3Xxbo2Xc.0008.wav|너희가 아들이므로 하나님이 그 아들의 영을 우리 마음 가운데 보내사 아빠 아버지라 부르게 하셨느니라 1787 | bda3Xxbo2Xc.0009.wav|그러므로 네가 이 후로는 종이 아니요 1788 | bda3Xxbo2Xc.0010.wav|아들이니 아들이면 하나님으로 말미암아 유업을 받을 자니라 1789 | bda3Xxbo2Xc.0011.wav|그러나 너희가 그 때에는 하나님을 알지 못하여 1790 | bda3Xxbo2Xc.0012.wav|본질상 하나님이 아닌 자들에게 종 노릇 하였더니 1791 | bda3Xxbo2Xc.0013.wav|이제는 너희가 하나님을 알 뿐 아니라 더욱이 하나님이 아신 바 되었거늘 1792 | bda3Xxbo2Xc.0014.wav|어찌하여 다시 약하고 천박한 초등학문으로 돌아가서 다시 그들에게 종 노릇 하려 하느냐 1793 | bda3Xxbo2Xc.0015.wav|너희가 날과 달과 절기와 해를 삼가 지키니 1794 | bda3Xxbo2Xc.0016.wav|내가 너희를 위하여 수고한 것이 헛될까 두려워하노라 1795 | bda3Xxbo2Xc.0017.wav|형제들아 1796 | bda3Xxbo2Xc.0018.wav|내가 너희와 같이 되었은즉 너희도 나와 같이 되기를 구하노라 1797 | bda3Xxbo2Xc.0019.wav|너희가 내게 해롭게 하지 아니하였느니라 1798 | bda3Xxbo2Xc.0020.wav|내가 처음에 육체의 약함으로 말미암아 너희에게 복음을 전한 것을 너희가 아는 바라 1799 | bda3Xxbo2Xc.0021.wav|너희를 시험하는 것이 내 육체에 있으되 1800 | bda3Xxbo2Xc.0022.wav|이것을 너희가 업신여기지도 아니하며 버리지도 아니하고 오직 나를 하나님의 천사와 같이 또는 그리스도 예수와 같이 영접하였도다 1801 | bda3Xxbo2Xc.0023.wav|너희의 복이 지금 어디 있느냐 1802 | bda3Xxbo2Xc.0024.wav|내가 너희에게 증언하노니 너희가 할 수만 있었더라면 너희의 눈이라도 빼어 나에게 주었으리라 1803 | bda3Xxbo2Xc.0025.wav|그런즉 내가 너희에게 참된 말을 하므로 원수가 되었느냐 1804 | bda3Xxbo2Xc.0026.wav|그들이 너희에게 대하여 열심 내는 것은 좋은 뜻이 아니요 1805 | bda3Xxbo2Xc.0027.wav|오직 너희를 이간시켜 너희로 그들에게 대하여 열심을 내게 하려 함이라 1806 | bda3Xxbo2Xc.0028.wav|좋은 일에 대하여 열심으로 사모함을 받음은 내가 너희를 대하였을 때뿐 아니라 언제든지 좋으니라 나의 자녀들아 1807 | bda3Xxbo2Xc.0029.wav|너희 속에 그리스도의 형상을 이루기까지 다시 너희를 위하여 해산하는 수고를 하노니 1808 | bda3Xxbo2Xc.0030.wav|내가 이제라도 너희와 함께 있어 내 언성을 높이려 함은 1809 | bda3Xxbo2Xc.0031.wav|너희에 대하여 의혹이 있음이라 1810 | bda3Xxbo2Xc.0032.wav|내게 말하라 율법 아래에 있고자 하는 자들아 율법을 듣지 못하였느냐 1811 | bda3Xxbo2Xc.0033.wav|기록된 바 아브라함에게 두 아들이 있으니 1812 | bda3Xxbo2Xc.0034.wav|하나는 여종에게서, 하나는 자유 있는 여자에게서 났다 하였으며 1813 | bda3Xxbo2Xc.0035.wav|여종에게서는 육체를 따라 났고 자유 있는 여자에게서는 약속으로 말미암았느니라 1814 | bda3Xxbo2Xc.0036.wav|이것은 비유니 1815 | bda3Xxbo2Xc.0037.wav|이 여자들은 두 언약이라 1816 | bda3Xxbo2Xc.0038.wav|하나는 시내 산으로부터 종을 낳은 자니 곧 하갈이라 1817 | bda3Xxbo2Xc.0039.wav|이 하갈은 아라비아에 있는 시내 산으로서 지금 있는 예루살렘과 같은 곳이니 1818 | bda3Xxbo2Xc.0040.wav|그가 그 자녀들과 더불어 종 노릇 하고 1819 | bda3Xxbo2Xc.0041.wav|오직 위에 있는 예루살렘은 자유자니 곧 우리 어머니라 1820 | bda3Xxbo2Xc.0042.wav|기록된 바 1821 | bda3Xxbo2Xc.0043.wav|잉태하지 못한 자여 즐거워하라 1822 | bda3Xxbo2Xc.0044.wav|산고를 모르는 자여 소리 질러 외치라 1823 | bda3Xxbo2Xc.0045.wav|이는 홀로 사는 자의 자녀가 남편 있는 자의 자녀보다 많음이라 하였으니 1824 | bda3Xxbo2Xc.0046.wav|형제들아 너희는 이삭과 같이 약속의 자녀라 1825 | bda3Xxbo2Xc.0047.wav|그러나 그 때에 육체를 따라 난 자가 성령을 따라 난 자를 박해한 것 같이 이제도 그러하도다 1826 | bda3Xxbo2Xc.0048.wav|그러나 성경이 무엇을 말하느냐 여종과 그 아들을 내쫓으라 1827 | bda3Xxbo2Xc.0049.wav|여종의 아들이 자유 있는 여자의 아들과 더불어 유업을 얻지 못하리라 하였느니라 1828 | bda3Xxbo2Xc.0050.wav|그런즉 형제들아 1829 | bda3Xxbo2Xc.0051.wav|우리는 여종의 자녀가 아니요 1830 | --------------------------------------------------------------------------------