우리 자신의 하드웨어에서 문자 대 음성을 실행하는 것에 대해 나를 놀라게 한 것은 모델이 얼마나 작은지입니다. 1개의 파일, 78MB, 904개의 고유 스피커를 보유하고 있습니다. 그것은 전화 사진 버스트보다 적고 단일 중급 언어 모델의 무게의 약 10분의 1이며, 그로부터 즉시 합성으로 넣지 않을 목소리가 나옵니다. 나는 도구가 노출하는 8개의 음성 중 3개를 측정했습니다. 중간 피치는 103Hz, 184Hz 및 242Hz입니다. 낮은 남성 목소리에서 높은 여성 목소리에 이르기까지 다른 번호가 전달된 동일한 파일에서 진정한 범위입니다.
TL;DR: 엔진은 libritts-r 모델을 사용하여 사이트 자체 상자에서 작동하는 Piper입니다. 측정: 약 3~4초의 벽 시간에 5.8~6.1초의 오디오를 생성하여 듣는 것보다 빠르게 합성됩니다. 분당 약 2.6MB인 22,050Hz 모노 WAV를 얻습니다. 속도 제어는 작동하지만 압축됩니다. 전체 0.7 ~ 1.5 범위는 2.14x가 아닌 지속 시간이 1.61배입니다. 숫자는 암시하고 0.85는 1.0과 구별할 수 없습니다. 같은 텍스트는 결코 같은 오디오가 아닙니다. 그만큼 텍스트 음성 변환 도구 입력은 3,000자입니다.
말하기는 무엇을 하고 있습니까?
웹 앱 옆에 자체 컨테이너로 실행되는 신경 텍스트 음성 변환 엔진인 Piper는 대본-R.
그 말뭉치는 출력의 품질과 특성을 모두 설명하기 때문에 알 가치가 있습니다. 원래 Librovox 오디오북 녹음에서 약 585시간 동안 영어로 된 읽기를 읽은 다음 음성 복원 모델을 통해 소스 자료의 녹음 품질을 정리합니다. 연사는 공개 도메인 책을 읽는 자원 봉사자입니다.
그래서 목소리는 사람들이 소리 내어 읽는 것처럼 들립니다. 그것이 그들이 하고 있는 것이 바로 그 일이기 때문입니다. 이 모델은 선언적 문장과 산문 단락에 능숙하며, 그것이 들은 것입니다. 교육 데이터의 아무도 대화를 나누지 않았기 때문에 대화형에서는 설득력이 떨어집니다.
모델 파일에는 904개의 스피커가 있으며 도구는 8개의 스피커를 노출시킵니다. 코드의 ID는 모델 고유의 것으로, 최고 8개가 아닌 범위에 걸쳐 선택되었습니다. 이는 8개 중 어느 것도 자신에게 적합하지 않다면 염두에 둘 가치가 있습니다.
여덟 목소리가 서로 다른가요?
예, 측정 가능합니다. 나는 그 중 세 가지에서 같은 문장을 생성하고 유성 프레임의 중앙값 기본 주파수를 계산했습니다.
| 목소리의 특색 | 스피커 ID | 중앙값 F0 |
|---|---|---|
| 음성 2 | 3 X 1000 X 1000 X 1000 X 100 X 100 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X 30 X | 103.3Hz |
| 음성 5 | 45 | 183.8Hz |
| 목소리 8 | 150 | 242.3Hz |
그것들은 주제의 변형이 아닙니다. 성인 남성의 말은 일반적으로 약 85~155Hz이고 성인 여성의 말은 165~255Hz이므로 이 3명은 정상 인간 범위의 바닥, 중간 및 상단에 있습니다.
지속 시간은 같은 문장에 대해 2.07~2.08초로 거의 동일하므로 속도를 변경하지 않고 음색과 음높이를 전환합니다. 따라서 주어진 스크립트에 대해 8개의 8개를 진정으로 상호 교환할 수 있습니다. 이는 클립 세트를 생성하고 클립을 다시 녹음하려는 경우 중요합니다.
얼마나 빠릅니까?
듣기보다 빠르다. 중요한 숫자다.
| 측정하다 | 값 |
|---|---|
| 입력 | 113자 |
| 오디오 제작 | 5.77~6.08초 |
| 월타임 | 2,994~3,929ms |
| 비율 | 실시간으로 약 1.5~1.9배 |
따라서 오디오를 1분 1분에서 40초 정도 만드는 데 30초에서 40초가 걸리며 최대 3,000자의 최대 시간은 2분 30분 동안 말하면 2분의 기다림에 대해 작동합니다.
주의할 점은 한 번에 하나의 요청이 제공된다는 것입니다. 서버는 의도적으로 단일 합성 슬롯을 실행합니다. 상자에서 측정하면 한 텍스트만으로 약 2.2초가 걸리고 3개는 한 번에 약 9초가 걸리므로 병렬 처리는 총 처리량을 구매하지 않으며 대기열의 첫 번째 사람이 7초 동안 비용을 지불합니다. 최대 20개의 요청이 기다려질 수 있지만, 도구가 몇 분을 기다리게 하는 대신 바쁘다고 말하는 것을 지나치면 됩니다.
또한 10분마다 20세대의 방문자 예산이 있습니다. 이는 정상적인 사용이 결코 충족하지 않을 만큼 충분히 높고 아무도 상자를 무료 오디오북 공장으로 바꾸는 만큼 충분히 낮습니다.
무엇을 되찾습니까?
압축되지 않은 WAV 파일이며 긴 파일을 만들기 전에 크기를 알아야 합니다.
codec pcm_s16le
sample rate 22,050 Hz
channels 1 (mono)
bit depth 16
이는 초당 44.1KB의 오디오이므로 대략적으로 분당 2.6MB, 그리고 전체 3,000자 실행이 7MB 근처에 착륙합니다. 위의 113자 샘플은 5.77초 동안 254,508바이트였습니다.
압축되지 않은 것은 모든 편집기에서 불만없이 사용하는 형식이며 추가해야 할 세대 손실이 없기 때문에 편집하거나 변환하려는 항목에 대한 올바른 기본값입니다. 업로드하거나 이메일로 보내려는 항목에 대한 잘못된 기본값이며 수정 사항은 한 단계입니다. 오디오 변환기 MP3 또는 M4A를 사용하십시오. 그것의 가이드 선택할 수 있는 커버와 음성에 대한 짧은 대답은 128kbps 이상의 모든 것이 괜찮다는 것입니다.
22,050Hz 비율은 모델의 것이며 CD 속도의 절반입니다. libritts-R은 24kHz로 분포되어 있으므로 모델 출력은 학습한 말뭉치의 속도보다 낮습니다. 즉, 여기서 잃어버린 것보다 파이퍼 자신의 구성입니다. 음성 에너지는 22,050Hz가 전달하는 11kHz 미만에 있기 때문에 어느 쪽이든 눈에 띄지 않습니다. 이는 출력이 스튜디오 녹음으로 전달되지 않으며 위쪽으로 다시 샘플링하면 아무 것도 추가되지 않습니다.
속도 제어가 말한 대로 합니까?
속도를 변경하는 것이지 숫자에서 제안하는 만큼은 아닙니다. 측정된 곡선은 다음과 같습니다.
| 속도 설정 | 존속기간 | 비율 1.0 | 선형은 줄 것입니다 |
|---|---|---|---|
| 0.7 | 7.268초 | 1.195 | 1.429 |
| 0.85 | 6.142초 | 1.010 | 1.176 |
| 1.0 | 6.084초 | 1.000 | 1.000 |
| 1.25 | 5.271초 | 0.866 | 0.800 |
| 1.5 | 4.516초 | 0.742 | 0.667 |
단조로움, 그래서 컨트롤은 당신이 예상하는 방향으로 작동하고 양쪽 끝에서 압축됩니다. 0.7에서 1.5까지의 전체 범위는 2.14배의 기간이 되어야 하고 1.61배를 측정해야 합니다. 0.85 설정은 1.0의 1% 이내입니다. 즉, 들을 수 있는 것은 아무 것도 하지 않습니다.
메커니즘은 설정이 기간 척도로 모델에 전달되고 모델 자체 기간 예측 변수가 각 음소의 길이를 결정하는 것입니다. 스케일을 승수가 아닌 강력한 힌트로 취급합니다.
실용적인 독서: 눈에 띄게 다른 속도를 원하고 중간 설정이 당신에게 정밀한 제어를 제공할 것으로 기대하지 않는다면 0.7 또는 1.5를 사용하십시오. 정확한 지속 시간이 필요한 경우 1.0에서 생성하고 오디오 편집기에서 템포를 변경하십시오. 여기서 숫자는 말하는 내용을 의미합니다.
같은 텍스트가 같은 오디오가 두 번 나오지 않는 이유는 무엇입니까?
모델이 모든 실행의 타이밍에 대해 새로운 결정을 내리기 때문입니다.
동일한 요청을 두 번, 동일한 텍스트, 동일한 음성, 동일한 속도로 보냈습니다. 결과는 6.084초와 6.002초였으며 파일은 바이트 단위로 다릅니다. 캐시된 것도 없고 시드도 없습니다.
이는 이 모델 제품군에 내재되어 있습니다. 지속 시간 예측자는 확률적이므로 음소 길이는 모든 입력이 고정되어 있더라도 실행 간에 약간 다릅니다. 여기에서 측정된 변동은 약 1.4%로 속도의 차이로 들리지 않고 파일 길이의 차이로 분명히 볼 수 있습니다.
두 가지 결과. 테이크에 어색한 일시 중지나 이상하게 착륙한 단어가 있는 경우 다시 생성하는 것이 미신이 아니라 진정한 수정입니다. 그리고 일치해야 하는 클립 세트를 생성하는 경우 한 세션에서 클립을 생성하고 얻은 것을 유지하십시오. 하나의 교체 라인으로 내일 다시 오면 1초의 1초 차이인 줄이 제공되기 때문입니다.
왜 3,000자 제한이 있습니까?
텍스트에 대한 것보다 그 뒤에 앉아 있기 때문입니다.
3,000자는 약 2.3분의 1분의 23분의 10분의 연설과 약 7MB의 WAV이며, 모두가 공유하는 단일 합성 슬롯에서 생성됩니다. 30,000자 챕터는 20분 동안 해당 슬롯을 차지하고 수행하는 동안 메모리에 70MB 버퍼를 보유합니다.
더 긴 시간을 위해 단락 경계를 분할하고 부분을 결합하십시오. 어쨌든 더 나은 연습입니다. 9단락의 실수는 전체 장보다 단락 9에 비용이 듭니다. 오디오 변환기 이후에 세트에 가입하고 변환합니다.
모델이 발화당 억양을 결정하기 때문에 중간 문장을 나누는 것은 피해야 할 한 가지입니다. 반으로 자른 문장은 두 개의 조각이 완전한 문장처럼 들리고 생각의 한가운데에 떨어지는 톤을 생성합니다.
무엇을 위해 좋은가, 무엇이 좋지 않은가?
소리 내어 읽을 수 있는 모든 것에 적합하며, 소리보다 좁은 범주입니다.
| 잘 작동 | 나쁘게 작동 |
|---|---|
| 비디오 또는 슬라이드에 대한 내레이션 | 캐릭터 간의 대화 |
| 기사의 오디오 버전 | 감정이나 강조가 필요한 모든 것 |
| 접근성: 자신의 초안을 듣습니다. | 일반적인 영어를 벗어난 이름과 장소 |
| 프로토타입의 자리 표시자 음성 | 비디오 컷에 대한 정확한 타이밍 |
| 당신이 쓴 문장의 발음 | 노래, 또는 음악적 |
오른쪽 열의 패턴은 제어입니다. 이 모델은 당신에게 목소리, 속도 및 들을 수 있는 좌석을 제공합니다. 특정 단어를 강조하거나, 주어진 길이의 일시 중지를 삽입하거나, 질문에 대한 억양을 변경하거나, 두문자어를 철자하는 방법이 없습니다. 이는 전문 TTS API가 마크업을 통해 노출하는 것입니다.
왼쪽 열의 첫 번째 행은 그 자리를 차지하는 곳입니다. 자신의 글을 다시 읽어주는 목소리는 가장 빠른 교정 도구입니다. 다른 사람이 말하는 순간 작동하지 않는 문장이 분명하기 때문입니다.
당신이 그것에 전념하기 전에 목소리를들을 수 있습니까?
아니요, 그리고 그것은 내가 변경할 인터페이스의 한 부분입니다.
8개의 음성은 레이블의 드롭다운입니다. 음성 1부터 음성 8까지이며 샘플이 첨부되지 않습니다. Voice 6이 어떤 소리를 내는지 알아내는 유일한 방법은 공유 합성 슬롯을 차지하는 생성물을 생성하는 것입니다. 이 슬롯은 몇 초가 걸리며 10분당 20세대에 대해 계산됩니다.
일회용으로 괜찮습니다. 프로젝트의 음성을 선택하는 것은 시작하기 전에 동일한 라인의 8개 테이크를 오디션하는 것을 의미하며, 이는 결정에 지출된 예산의 10분의 대부분입니다.
실용적인 접근 방식은 대본이 아닌 짧은 줄로 오디션하는 것입니다. 12개의 단어로 구성된 문장이 약 2초 만에 돌아와서 피치와 캐릭터를 알려줍니다. 이것이 당신이 선택하는 전부입니다. 그런 다음 선택한 후 실제 텍스트로 전환하십시오.
이 가이드의 앞부분은 부분적인 바로 가기입니다. 음성 2는 낮고, 음성 5는 MID, 음성 8은 높음입니다. 내가 측정하지 않은 5개는 그들 사이 어딘가에 앉아 있습니다.
클라우드 음성과 비교하면 어떻습니까?
폴란드어에 호의적으로 적합하지 않으며 여기에서 중요한 비교가 아닙니다.
상업용 API는 더 나은 프로소디, 수십 가지 언어, 일시 중지 및 강조에 대한 마크업 제어, 방송용으로 훈련된 음성을 제공합니다. 출판을 위해 무언가를 생산하고 있다면 그만한 가치가 있습니다.
대신에 제공되는 것은 텍스트가 사이트 자체의 하드웨어를 절대 떠나지 않으며 출력은 캐릭터당 청구서와 계정이 없는 귀하의 것입니다. 위의 왼쪽 열에 있는 용도, 특히 자신의 초안을 다시 읽어보면 폴란드어의 차이는 클라우드 계정과 API 키의 가치가 없습니다.
정직한 요약은 이것이 TTS가 괜찮은 내장 마이크와 동등하다는 것입니다. 앨범을 녹음하는 데 사용할 것이 아니라 거기에 있다는 것을 알아차리지 않는 것이 좋습니다.
오디오를 상업적으로 사용할 수 있습니까?
아마도 속성이 있고 라이센스는 예보다 주의 깊게 살펴볼 가치가 있습니다.
Piper 엔진은 MIT 라이선스가 있습니다. 여기의 모델은 libritts-R에 대해 훈련되었습니다. OpenSLR은 "라이센스: CC BY 4.0"으로 배포합니다., 및 CC BY 4.0은 속성을 제공하는 상업적 사용을 허용합니다.
Libritts-R 논문의 자체 인용 메타데이터가 다른 라이선스 문자열을 전달하기 때문에 주의가 필요합니다. 그것은 의도 진술이 아니라 인용 템플릿의 남은 것일 가능성이 높으며 배포 페이지가 더 강력한 신호이지만 두 사람은 동의하지 않으며 나는 당신을 위해 그것을 해결할 위치에 있지 않습니다.
그래서: 부수적인 일에 대해 이것은 아무도 묻지 않을 질문이 아닙니다. 오디오 기반의 상업용 제품의 경우 데이터 세트 페이지를 읽는 대신 특정 음성 모델에 대한 라이선스를 읽고 조언을 받아보세요.
오디오를 게시하기 전에 무엇을 확인해야 합니까?
네 가지가 잘못되었습니다.
- 전체를 들어보세요. 이것은 명백하게 들리고 일상적으로 건너뛰며 잘못된 이름을 잡는 유일한 방법입니다.
- 모든 고유 명사, 약어 또는 단위. 모델에 편집할 수 있는 사전이 없습니다. "OseI" 또는 "GDPR"이 잘못되면 수정은 입력 텍스트에서 음성 철자를 발음하고 입력이 이제 못생겼다는 것을 받아들이는 것입니다.
- 채워야 하는 슬롯에 대한 길이. 속도는 느슨하게 제어할 수 있으므로 두 번째로 계획하지 말고 공간을 남겨 두십시오.
- 업로드하기 전에 변환하십시오. 2.6MB의 WAV는 웹 페이지에서 원하는 것이 아닙니다.
사이트의 자체 서버에서 실행되는 이유는 무엇입니까?
사람들이 소리 내어 읽은 텍스트는 종종 자신의 출판되지 않은 글이기 때문입니다.
초안, 대본, 자기소개서, 연설, 그들이 보내는 것에 대해 확신이 서지 않는 메시지. 기존의 대안은 문자당 청구하는 서비스에 게시하고, 아무도 읽지 않는 용어로 텍스트를 유지하며, 첫 번째 단어 앞에 계정이 필요합니다.
여기에서 웹 앱 옆에 있는 컨테이너로 이동하여 합성되고 파일로 돌아옵니다. 비용은 위의 모든 측정에서 볼 수 있습니다. 한 번에 하나의 슬롯, 3,000자 천장, 22kHz 모노, 방송보다는 좋은 목소리입니다. 그 대가로 텍스트는 이미 페이지를 신뢰하고 있던 컴퓨터에서 읽었습니다.



