Summertts는 2023 년의오고 지나가는 여름을 기념하는 데 사용됩니다.
설명
- Summertts는 독립적으로 편집 된 음성 합성 프로그램 (TTS)입니다. 네트워크가 필요하지 않고 로컬로 실행할 수 있으며 추가 종속성이 없습니다. 한 번의 클릭 편집은 중국어 및 영어 음성 합성에 사용될 수 있습니다.
- Summertts의 기본 컴퓨팅 라이브러리는 템플릿 정의 기능 세트 인 Eigen을 사용합니다. 대부분의 경우 헤더 파일 만 포함하면 되므로이 프로젝트에는 다른 종속성이 없으며 C ++ 환경에서 독립적으로 컴파일하고 실행할 수 있습니다.
- 이 프로젝트는 Eigen이 제공 한 Matrix 라이브러리를 사용하여 신경망의 운영자를 구현하며 Pytorch, Tensorflow, NCNN 등과 같은 다른 NN 운영 환경에 의존 할 필요가 없습니다.
- 이 프로젝트는 우분투에서 편집되어 실행됩니다. Android, Raspberry Pi 등과 같은 다른 Linux와 같은 플랫폼에는 큰 문제가 없어야합니다. 창에서 테스트되지 않았으며 약간의 변경이 필요할 수 있습니다.
- 이 프로젝트의 모델은 음성 합성 알고리즘 vits를 기반으로하며 C ++ 엔지니어링을 기반으로합니다.
- 이 프로젝트는 MIT 라이센스에 적용됩니다. 이 프로젝트를 기반으로 한 개발, 사용자 또는 조직은 MIT 라이센스를 따르십시오 : https://mit-license.org
로그 업데이트
- 2024-12-14 : MIT 라이센스에 라이센스 정보 추가 : https://mit-license.org
- 2023-06-16 : 더 빠른 영어 음성 합성 모델을 추가하도록 업데이트되었습니다 : Single_speaker_english_fast.bin 또는 다음 네트워크 디스크에서 속도가 더 빠르며 합성 음질이 크게 줄어들지 않습니다.
링크 : https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq?pwd=2d5h 추출 코드 : 2D5H - 2023-06-15 : 순수한 영어 발음 합성을 지원하면 최신 코드를 동기화해야합니다. 다음 네트워크 디스크에서 모델 파일을 사용하고 Single_Speaker_english.bin을 사용하고 다음과 같은 방식으로 영어 발음을 종합하십시오.
./tts_test ../test_eng.txt ../models/single_speaker_english.bin out_eng.wav
네트워크 디스크의 경로는 다음과 같습니다. 이전의 중국 발음 합성 및 사용은 영향을받지 않습니다. 이 업데이트는 순수한 영어 발음 합성 만 지원하며 중국 혼합 영어는 당분간이를 지원하지 않습니다.
링크 : https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq?pwd=2d5h 추출 코드 : 2D5H - 2023-06-09 : 중간 크기의 단일 스피커 모델이 추가되었습니다. Single_speaker_mid.bin은 이전 모델보다 약간 느리지 만 합성 된 음질은 더 나은 것 같습니다 (나는 귀에 민감하지 않으며 더 나아질 수 있습니다. 심리적 효과입니다 : P). 코드를 업데이트 할 필요가 없으며 이전 네트워크 디스크에서 Single_speaker_mid.bin을 다운로드하여 사용하면됩니다.
- 2023-06-08 : Newlines 및 전체 텍스트의 합성을 지원하기 위해 Test/Main.cpp 수정
- 2023-06-03 : Fix는 어제 버전에 오류가 있습니다. 테스트와 단서를 제공하기위한 열정적 인 Netizen Telen 덕분입니다. 코드 업데이트 만 필요하며 모델을 업데이트 할 필요가 없습니다.
- 2023-06-02 : 다성 발음 합성의 정확도가 크게 향상되었습니다. 개선 된 다성 발음 및 텍스트 정규화 (텍스트 정규화)를 사용하려면 Baidu Netdisk에 새로운 모델이 필요합니다. 오늘날 업데이트 된 코드는 이전 모델을 사용할 수 없습니다. 그렇지 않으면 충돌로 이어질 수 있습니다.
- 2023-05-30 : 프론트 엔드 텍스트 정규화 모듈로 통합 된 WetextProcessing 숫자, 통화, 온도, 날짜 등의 올바른 발음 합성을 크게 향상시킵니다.
- 2023-5-23 : 새로운 알고리즘을 사용하면 단일 스피커의 음성 합성 속도가 크게 향상되었습니다.
- 2023-4-21 : 초기 창조
사용 지침
이 프로젝트의 코드를 국부적으로 복제, 바람직하게는 우분투 리눅스 환경
다음 Baidu Network Disk 주소에서 모델을 다운로드 하여이 프로젝트의 모델 디렉토리에 넣습니다. 링크 : https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq?pwd=2d5h 추출 코드 : 2D5H
모델 파일이 배치 된 후 모델 디렉토리 구조는 다음과 같습니다.
모델/
multi_speakers.bin
single_speaker_mid.bin
single_speaker_english.bin
single_speaker_english_fast.bin
└대로 효율적
빌드 디렉토리를 입력하고 다음 명령을 실행하십시오.
cmake ..
만들다
컴파일이 완료되면 TTS_TEST 집행자가 빌드 디렉토리에서 생성됩니다.
중국어 음성 합성 (TTS)을 테스트하기 위해 다음 명령을 실행하십시오.
./tts_test ../test.txt ../models/single_speaker_fast.bin out.wav
영어 음성 합성 (TTS)을 테스트하기 위해 다음 명령을 실행하십시오.
./tts_test ../test_eng.txt ../models/single_speaker_english.bin out_eng.wav
이 명령 줄에서 :
첫 번째 매개 변수는 텍스트 파일로가는 경로이며, 여기에는 음성을 위해 합성 해야하는 텍스트가 포함되어 있습니다.
두 번째 매개 변수는 위에서 언급 한 모델의 경로입니다. 파일 이름의 시작 부분에서 단일 및 멀티는 모델에 단일 스피커 또는 여러 스피커가 포함되어 있는지 여부를 나타냅니다. 권장 단일 스피커 모델 : Single_speaker_fast.bin, 합성 속도가 더 빠르고 합성의 음질도 괜찮습니다. 세 번째 매개 변수는 합성 오디오 파일입니다. 프로그램이 실행되면 플레이어와 함께 열 수 있습니다.
위의 테스트 프로그램은 test/main.cpp에서 구현되며 특정 합성 인터페이스는 다음과 같이 포함/신디사이저 스트n.h로 정의됩니다.
int16_t * lent (const string & line, int32_t sid, float longthscale, int32_t & datalen)
인터페이스 :
첫 번째 매개 변수는 합성 될 음성의 문자열입니다.
두 번째 매개 변수는 스피커의 ID가 음성을 종합하는 데 사용됨을 지정합니다. 이 매개 변수는 멀티 스피커 모델에 유효하며 단일 스피커 모델의 경우 0으로 고정되었습니다. 스피커 수는 인터페이스 int32_t getSpeakernum ()에 의해 반환 될 수 있으며 유효한 ID는 0이고 인터페이스로 반환 된 스피커 수는 1만큼 줄어 듭니다.
세 번째 매개 변수 길이 스케일은 합성 음성의 음성 속도를 나타내고, 그 값이 클수록 음성 속도가 느리다는 것을 나타냅니다.
합성 될 텍스트에는 아랍어 숫자와 구두점이 포함될 수 있지만,이 프로젝트의 텍스트 정규화 (TN) 모듈은 여전히 매우 거칠기 때문에 영어 문자에 대해서는 무시됩니다. 또한 텍스트 정규화 (TN) 모듈은 여전히 매우 거칠기 때문에 다른 상황에서 다성 문자의 발음이 때때로 부정확합니다.
후속 개발
- 모델 교육 및 변환 스크립트는 나중에 열립니다
- 앞으로 우리는 더 나은 음질을 훈련시키고 모델을 제공하려고 노력할 것입니다.
저자에게 연락하십시오
- 추가 질문이 있거나 필요한 경우 [email protected]으로 이메일을 보내거나 Wechat : Hwang_2011을 추가 할 수 있습니다. 답장을 위해 최선을 다하겠습니다.
특허
- 이 프로젝트는 MIT 라이센스에 적용됩니다. 이 프로젝트를 기반으로 한 개발, 사용자 또는 조직은 MIT 라이센스를 따르십시오 : https://mit-license.org
고마워하는
이 프로젝트는 소스 코드 및 알고리즘 측면에서 다음 체계를 사용합니다. 여기 감사합니다. 법적 문제가 발생할 수있는 경우 제 시간에 저에게 연락하여 조정하고 해결하십시오.
- 고유
- vits (https://github.com/jaywalnut310/vits)
- vits_chinese (https://github.com/uehqzxi/vits_chinese)
- MB-istft-vits (https://github.com/masayakawamura/mb-istft-vits)
- wetextProcessing (https://github.com/wenet-e2e/wetextprocessing)
- glog (https://github.com/google/glog)
- gflags (https://github.com/gflags/gflags)
- OpenFst (https://github.com/kkm000/openfst)
- 중국어 To Pinyin (https://github.com/yangyangwithgnu/hanz2piny)
- cppjieba (https://github.com/yanyiwu/cppjieba)
- g2p_en (https://github.com/kyubyong/g2p)
- English-to-ipa (https://github.com/mphilli/english-to-ipa)
- 이 프로젝트의 중국 단일 스피커 모델은 오픈 소스 Biaobei 데이터 세트 교육을 기반으로하며 멀티 스피커 모델은 오픈 소스 데이터 세트 Aishell3 교육을 기반으로하며 영어 단일 스피커 모델은 LJ 음성 데이터 세트를 기반으로합니다.