Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bryanlimy/rnn-lie-detector
TensorFlow RNN-based Lie Detector on the CSC Deceptive Speech Dataset
https://github.com/bryanlimy/rnn-lie-detector
gru lstm neural-network nlp rnn tensorflow
Last synced: 28 days ago
JSON representation
TensorFlow RNN-based Lie Detector on the CSC Deceptive Speech Dataset
- Host: GitHub
- URL: https://github.com/bryanlimy/rnn-lie-detector
- Owner: bryanlimy
- License: mit
- Created: 2018-04-14T17:41:18.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-07-08T18:37:22.000Z (over 5 years ago)
- Last Synced: 2024-10-10T17:23:35.833Z (about 1 month ago)
- Topics: gru, lstm, neural-network, nlp, rnn, tensorflow
- Language: Python
- Homepage:
- Size: 7.81 KB
- Stars: 11
- Watchers: 2
- Forks: 15
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
### Lie Detector on CSC Deceptive Speech Dataset using simple RNN with TensorFlow
Implemented a simple RNN lie detector on the CSC Deceptive Speech Dataset using [TensorFlow 1.7 Estimator API](https://www.tensorflow.org/api_docs/python/tf/estimator).
I tried modeling the data in two different ways; first (per frame method), pass in a MFCC vector with each row as a time step to the RNN, for instance, if the MFCC vector has dimension (28000,13), then the input for the RNN model is (28000, batch_size, 13); second , pass in the MFCC vector such that the whole vector is treated as the same time step, i.e. (1, 1, 28000 * 13). The two method can be selected using flag `--per_frame`.
The the MFCC vectors have different length, in order to pass in the vectors into TensorFlow's Estimator API, I had to add paddings to the vectors that are shorter than the longest vector, and use the `sequence_length` parameter in `dynamic_rnn to` ignore the padding. The model support the basic RNN, LSTM and GRU which can be specified with flag `--model`. When using the `per frame` method, the last output state from `dynamic_rnn` is then taken to apply dropout with flag `--dropout`, and pass to the output layer.
#### Dataset
- [CSC Deceptive Speech Dataset](https://catalog.ldc.upenn.edu/LDC2013S09)#### How to run
`python3 lie-detector.py --lr=0.001 ---epochs=5 --model=LSTM --data_dir=data --per_frame=True`