Code Monkey home page Code Monkey logo

automatic_speech_recognition's Introduction

Nhận dạng tiếng nói tiếng Việt

Dự án nghiên cứu về bài toán Nhận dạng tiếng nói tiếng Việt, được phát triển bởi nhóm nghiên cứu xử lý ngôn ngữ tự nhiên tiếng Việt - undertheseanlp. Chứa mã nguồn các thử nghiệm cho việc xử lý dữ liệu, huấn luyện và đánh giá mô hình, cũng như cho phép dễ dàng tùy chỉnh mô hình đối với những tập dữ liệu mới.

Nhóm tác giả

Tham gia đóng góp

Mọi ý kiến đóng góp hoặc yêu cầu trợ giúp xin gửi vào mục Issues của dự án. Các thảo luận được khuyến khích sử dụng tiếng Việt để dễ dàng trong quá trình trao đổi.

Nếu bạn có kinh nghiệm trong bài toán này, muốn tham gia vào nhóm phát triển với vai trò là Developer, xin hãy đọc kỹ Hướng dẫn tham gia đóng góp.

Mục lục

Yêu cầu hệ thống

  • Hệ điều hành: Ubuntu 16.04
  • Python 3.6+
  • conda 4+

Thiết lập môi trường

Cài đặt Kaldi

Để cài đặt Kaldi, thực hiện theo các bước tại hướng dẫn

$ git clone https://github.com/kaldi-asr/kaldi.git kaldi-trunk --origin golden

$ cd kaldi-trunk/tools/; make;

$ extras/install_openblas.sh

$ cd ../src; ./configure  --openblas-root=../tools/OpenBLAS/install; make

Cài đặt language modeling toolkit srilm

Cài đặt dependencies

$ apt-get install gawk

Cài đặt srilm

$ cd kaldi-trunk/tools
$ wget -O srilm.tgz https://raw.githubusercontent.com/denizyuret/nlpcourse/master/download/srilm-1.7.0.tgz
$ ./install_srilm.sh
...
Installation of SRILM finished successfully
Please source the tools/env.sh in your path.sh to enable it

Hướng dẫn sử dụng

Huấn luyện mô hình

Mô tả dữ liệu: Xem chi tiết

Trước khi run train.py phải set lại đường dẫn tới kaldi_folder .

Method predict nên có thêm argument model_path nếu bạn đã thực hiện train trước đó (vì nếu không nó sẽ lấy theo tmp_path của model, mà tmp_path này random cho mỗi lần khởi tạo lại model để chuẩn bị cho việc chạy training mới)

Thay đổi N_TRAIN và N_TEST trong init của KaldiSpeechRecognition để đổi giới hạn tập train/test

Output folder sẽ nằm trong kaldi_folder/egs/uts_{tmp_number} với tmp_number được thấy khi run train.py (EX: "Init Kaldi Speech Recognition in number_of_tmp folder" - Will be updated soon)

Kết quả thử nghiệm

Huấn luyện trên tập dữ liệu VIVOS - OpenFPT, test trên tập VLSP 2018

Mô hình WER
GMM: MFCC + delta + LDA + MLTT 75.27%

Huấn luyện trên tập dữ liệu VIVOS, test trên tập VLSP 2018

Mô hình WER
GMM: MFCC + delta + LDA + MLTT 79.80%
GMM: MFCC + delta 82.03%

Bản quyền

Mã nguồn của dự án được phân phối theo giấy phép GPL-3.0.

Dự án sử dụng tập dữ liệu VIVOS trong các thử nghiệm. Xin vui lòng kiểm tra lại thông tin trên website hoặc báo cáo khoa học tương ứng để biết thông tin về bản quyền và trích dẫn khi sử dụng tập dữ liệu này.

automatic_speech_recognition's People

Contributors

luiyen avatar rain1024 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

automatic_speech_recognition's Issues

Tạo file model.conf

Em đang gặp vấn đề cấu trúc model (sắp xếp các tệp từ kaldi_folder/egs/uts_{tmp_number}), Em không biết làm sao để tạo file model.conf cho đúng với dự án của mình.
Anh, chị có thể hỗ trợ em được không? Em cảm ơn ạ

Không chạy được file train.py

cho em hỏi lỗi như này thì khắc phục làm sao vậy ạ ! em có tìm kiếm trên google nhưng không tìm thấy cách để khắc phục lỗi này ! xin giúp đỡ cho em !

Traceback (most recent call last):
File "train.py", line 1, in
from egs.vivos.extension.model import KaldiSpeechRecognition
ModuleNotFoundError: No module named 'egs'

Output folder

Anh ơi cho em hỏi, nếu không có file ivector thì có thể tạo model cho dự án android demo được không anh, em đã train thành công nhưng khi bỏ model sau khi train xong vào dự án android thì bị lỗi "Failed to unpack the model Failed to create a model". Có phải là do thiếu file ivector? Giúp em với ạ

Thay đổi cấu trúc thư mục

Thay đổi cấu trúc thư mục

  • Thêm script train.py để train và evaluate
  • Thêm script predict.py để predict sử dụng mô hình đã huấn luyện

output(số đầu ra) của mạng

Chào ad. e đang tìm hiểu về asr. có một vấn đề là việc map các kí tự trong tiếng việt để encode sang int array cho vào train model. e xem qua thì thấy code sử dụng map từ word2phone mà e chưa rõ lắm là đang sử dụng out là word hay char(90 kí tự trong TV) hay phone(âm vị hay gì đó..) để encode text và sử dụng cho decode khi predict. và e muốn áp dụng cho CTC trong tensorflow, vì vậy muốn hiểu rõ về số output của mạng đối với tiếng việt
Em cảm ơn!

Khảo sát tập dữ liệu

@jackNhat đọc các bài báo về nhận dạng và tổng hợp tiếng nói. Xem dữ liệu trong bài toán này thường được EDA như thế nào?

Danh sách các báo cáo khoa học đề xuất

Các số liệu thống kê:

  • Số lượng câu
  • Tổng số lượng token, phân bố số lượng token trong mỗi câu
  • Phân bố duration trong các file âm thanh

hướng dẫn sử dụng trên window

Mình muốn hỏi là repo này có sử dụng được trên Window không nhỉ? và nếu có thì các cú pháp cài đặt thế nào vì các command line kia mình gõ thì không làm được trên win10.

Mình cảm ơn

Gặp lỗi khi training

Xin phép anh em cho mình hỏi 1 câu.
Khi mình train gặp lỗi này, mình đã làm theo pipeline hướng dẫn tuy nhiên vẫn cứ gặp nó.
Anh em có thể chỉ cho mình cách fix đc ko ạ?
Cảm ơn rất nhiều
Screenshot from 2020-10-13 16-11-18

Mô hình có sẵn của ASR

Anh ơi, em thấy có mục Sử dụng mô hình đã huấn luyện nhưng chưa thấy hướng dẫn cho phần này. Em có thể lấy mô hình đã huấn luyện như thế nào ạ?

Thắc mắc quy trình chạy

Chào undertheseanlp

cho mình hỏi về quy trình chạy project này ạ:

  • preprocess.py

  • egs/train.py
    Sau khi train xong: mình có chạy 2 file là predict.py và test_model.py

  • File predict mình thấy nó chạy ra result nhưng WER khá cao

  • File test_model.py thì mình chạy như thế nào đi nữa thì cái output transcript thì luôn là " "

Đây là command của mình:

python3 train.py --kaldi_folder {path}/kaldi-trunk/ --corpus_folder {path}/automatic_speech_recognition/data/vivos/corpus --export_path {path}/automatic_speech_recognition/egs/vivos/model_export/

python3 predict.py --wav {path}/automatic_speech_recognition/egs/vivos/test/VIVOSDEV01_R043.wav --kaldi_folder {path}/kaldi-trunk/ --model_path /home/duong/Python/kaldi-trunk/egs/uts_795/exp/tri2a/ --utils_path {path}/kaldi-trunk/egs/uts_795/utils/

python3 test_model.py

Mình xin cảm ơn ạ

Cập nhật báo cáo kỹ thuật

Viết báo cáo kỹ thuật cho hệ thống

Ngôn ngữ: Tiếng Việt

Nội dung:

  • Lời mở đầu
  • Giới thiệu
  • Mô tả hệ thống
  • Đánh giá
    • Tập dữ liệu
    • Kết quả
  • Kết luận

Việt Speech to Text

Mình đang cần một ứng dụng chạy offline trên môi trường Windows để giải quyết vấn đề Việt Speech to Text. Các bạn có thể tư vấn cụ thể làm như thế nào, step 2 step ... (mã nguồn, cách training hoặc bằng cách nào đó thiết lập một hệ thống chạy độc lập hoặc trên trên môi trường mạngLAN cũng được)
Dùng không cần Internet mà giải quyết được.
Vì trước tới giờ mình toàn dùng Google Docs để chuyển giọng đọc thành text..hihi.

Hỏi về hướng dẫn trước khi chạy train.py

Mình đọc trong hướng dẫn thấy nói, là "set đường dẫn tới kaldi_folder trước khi run" vậy cho mình hỏi kaldi_folder nằm ở đâu vậy và còn "N_TRAIN và N_TEST trong init của KaldiSpeechRecognition" nằm ở đâu. Cám ơn bạn đã đọc và trả lời

WER quá cao

WER là tỉ lệ lỗi từ. Trong này đề cập ở khoảng 70 80% liệu có phải quá cao không

Song song hóa quá trình decode

Quá trình decode đang gặp vấn đề là chỉ dùng một luồng $nj=1, do đó thời gian rất lâu, cần tìm hiểu cách để song song hóa quá trình decode

echo
echo "===== MONO DECODING ====="
echo

START=$(date +%s);
utils/mkgraph.sh --mono data/lang exp/mono exp/mono/graph || exit 1
steps/decode.sh --config conf/decode.config --nj 1 --cmd "$decode_cmd" \
  exp/mono/graph data/test exp/mono/decode
END=$(date +%s);
MONO_DECODING_TIME=$((END - START))

https://github.com/undertheseanlp/automatic_speech_recognition/blob/master/egs/vivos/extension/run_lda_mllt.sh#L113

Lỗi không tìm thấy file

Chào các bạn, mình bị lỗi này có ai biết không giúp mình với,mình cảm ơn rất nhiều

  1. Sau khi build xong mình chạy predict thì bị lỗi
    Can't open transcriptions/one-best.tra: No such file or directory at /root/kaldi -trunk/egs/uts_601/utils/int2sym.pl line 57.
  2. Câu lệnh predict của mình là
    python /data/automatic_speech_recognition-master/egs/vivos/predict.py --wav /root/vivos/train/waves/VIVOSSPK01/VIVOSSPK01_R001.wav --kaldi_folder ~/kaldi-trunk --model_path ~/kaldi-trunk/egs/uts_601/exp/tri3a --utils_path /root/kaldi-trunk/egs/uts_601/utils

Mình có làm sai gì không, cảm ơn đã đọc và hỗ trợ nhiều

không tìm thấy tệp prompts.txt

mình gặp lỗi này: File "preprocess.py", line 43, in create_train_text
content = open("raw/train/prompts.txt").read()
IOError: [Errno 2] No such file or directory: 'raw/train/prompts.txt
mình đã cố tìm file prompts.txt trong project của bạn mà không tìm thấy. Bạn có thể giải thích lỗi này giúp mình được không

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.