1.1 切割音频
将音频切割为多个10s内的片段
1.2 降噪
这一步用的是modelscope的pipeline
如果要去除背景音,可以用傅立叶转为为频谱,去除低频部分后再转回来
1.3 提取音频特征
这里用到了 funasr 库
这一步目的是输出音频样本的《文本标签文件》,名字为“denoise_opt.list”,内容格式如下:
音频样本的路径 | 标签 | 文本
样例:
./m4a_0000017280_0000207040.wav|denoise_opt|ZH|人高马大欺负女人,该打我最看不起不尊重女性的男人。
./m4a_0000209600_0000594240.wav|denoise_opt|ZH|如果你觉得我不对的话,你马上报啊头套还了一人做事,一人当刚才那个杂碎呢,我变得很happy.如果局长觉得我做的不对呢,随时整死我。
./m4a_0000594240_0000740160.wav|denoise_opt|ZH|这是我们应该做什么,没什么特别单位哪个部门最危险的。
./m4a_0000740160_0000903040.wav|denoise_opt|ZH|我想去,其实不知道,我知道这份资料写的很详细啊,这个案子很危险的。
./m4a_0000903040_0001033600.wav|denoise_opt|ZH|嗯,但是我向来是享受危险。
./m4a_0001033600_0001362880.wav|denoise_opt|ZH|回家吃晚饭,现在你去真是好无行,我怎么做,你不要不问行不行,你得找错事。
./m4a_0001362880_0001457600.wav|denoise_opt|ZH|以后在我面前,不准说我们的坏话。
操作界面如下:
2.数据进一步处理
数据的处理还有进一步操作,即格式化微调模型所需数据 ,其输出放在“./logs”文件夹下
位置在 <<1-GPT-SoVITS-TTs>>下的<<1Aa-文本内容提取>>, 界面如下:
2.1 文本获取
- 1Aa-文本内容提取
通过<GPT_SoVITS/pretrained_models/chinese-roberta-wwm-ext-large>模型,输入文本标注文件,logs文件夹下得到:
<2-name2text.txt>文件 和 ❤️-bert>文件夹
- 2-name2text.txt: 音素化的文本词向量表(phoneme-tokenization) - 执行’./GPT_SoVITS/prepare_datasets/1-get-text.py'
文件内容格式为:name, phones, word2ph(文字的音素长度, 1或2个单位), norm_text
样例:
wmd1.m4a_0000017280_0000207040.wav r en2 g ao1 m a3 d a4 q i1 f u5 n v3 r en2 , g ai1 d a2 w o3 z ui4 k an4 b u5 q i3 b u4 z un1 zh ong4 n v3 x ing4 d e5 n an2 r en2 . [2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1] 人高马大欺负女人,该打我最看不起不尊重女性的男人.
wmd1.m4a_0000594240_0000740160.wav zh e4 sh ir4 w o3 m en5 y ing1 g ai1 z uo4 sh en2 m e5 , m ei2 sh en2 m e5 t e4 b ie2 d an1 w ei4 n a3 g e5 b u4 m en2 z ui4 w ei1 x ian3 d e5 . [2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1] 这是我们应该做什么,没什么特别单位哪个部门最危险的.
- 3-bert文件夹
文件夹内是音频片段的robert提取特征,size = [1024, length]
2.2 语音特征压缩
这里通过hubert压缩语音特征,用于微调模型的输入
- 1Ab-SSL自监督特征提取
通过<GPT_SoVITS/pretrained_models/chinese-hubert-base>模型, logs文件夹下得到:
- 4-cnhubert 文件夹
文件夹内是音频片段的hubert抽取特征: size = [batch_size, 768, length]
- 5-wav32k文件夹
文件夹内是音频片段的32k重采样频率音频
2.3 语义token获取
- 1Ac-语义token提取
这个得到llm的语义token,放在:
- 6-name2semantic文件夹
这里执行的是‘GPT_SoVITS/prepare_datasets/3-get-semantic.py’文件, 文件代码逻辑包括:
- 1.将<4-cnhubert>文件夹内的特征,输入入VITS的音频生成器:SynthesizerTrn
- 2. SynthesizerTrn输出得到里面的语义输出向量:semantic_code
- 3.将输出保存为tsv表格文件,数据格式如下:
item_name semantic_audio
wmd1.m4a_0000017280_0000207040.wav 208 14 160 160 103 656 334 433 451 200 877 956 136 215 80 436 451 65 5 965 566 848 221 631 560 647 359 807 844 320 559 358 674 708 51 527 918 220 929 914 825 362 842 95 555 599 409 219 452 337 366 187 187 138 905 577 554 26 938 787 7 201 781 1011 1017 141 659 62 393 858 795 321 321 980 44 718 237 699 623 623 1005 451 1005 221 1001 451 318 208 242 96 3 961 71 613 1011 650 241 361 172 944 63 621 84 946 374 889 529 546 787 1001 823 26 539 46 527 35 512 527 909 497 7 997 187 1003 671 767 385 255 11 948 841 183 886 734 844 516 49 760 1001 23 365 203 814 232 576 232 59 1005
wmd1.m4a_0000594240_0000740160.wav 509 390 606 175 387 869 918 71 324 257 55 181 416 769 831 289 15 55 562 947 790 233 803 813 687 340 696 168 718 731 577 588 175 256 213 738 625 215 758 103 930 727 182 397 459 501 101 594 108 143 64 997 201 183 31 103 103 132 1021 909 341 432 625 837 653 10 1018 878 207 988 62 82 172 499 456 65 11 859 886 534 257 277 79 341 427 20 205 430 897 420 201 60 1003 139 841 456 544 788 243 539 153 526 215 1001 208 318 965 454 601 102 258 612 160
wmd1.m4a_0000903040_0001033600.wav 14 1001 787 533 533 172 632 341 420 670 670 357 477 33 581 565 758 758 14 14 593 758 160 208 208 14 570 65 203 515 457 1001 565 96 430 522 40 389 685 605 692 629 661 777 376 685 950 319 781 413 854 589 603 45 281 376 703 1003 659 923 656 916 603 392 245 194 70 717 129 513 745 172 854 738 1017 581 797 797 797 3 647 65 1005 27 90 451 14 214 272 366 910 814 566 479 538 526 858 456 16 127 844
wmd1.m4a_0001362880_0001457600.wav 913 474 953 774 953 273 382 5 714 602 642 1017 443 591 354 202 877 1020 682 85 515 82 409 188 661 701 148 345 345 20 59 33 172 51 964 164 474 707 956 860 711 556 708 333 917 187 691 893 233 449 780 255 216 37 841 700 873 758 199 219 123 92 433 909 842 69 746 190 602 208 215 23 23
wmd1.m4a_0000209600_0000594240.wav 539 559 726 420 813 19 713 776 395 1016 938 203 82 455 125 825 422 757 805 526 702 199 384 889 488 939 173 962 385 961 172 1000 95 429 747 173 638 803 188 842 324 400 812 243 173 205 389 225 877 625 625 1005 539 641 10 969 909 881 881 1018 200 257 69 409 259 956 784 924 924 240 418 638 27 504 27 1005 844 902 1021 909 909 625 625 758 539 186 136 526 215 208 602 318 689 348 238 172 546 138 631 644 352 480 307 186 475 55 172 724 437 66 534 1016 978 940 593 1008 962 428 221 663 797 365 76 135 936 876 576 578 194 642 601 960 803 658 649 559 964 546 688 238 653 781 358 605 95 924 219 246 645 458 354 497 410 980 406 175 774 16 910 8 417 792 306 334 55 607 734 865 202 807 517 31 581 541 556 595 908 136 436 203 541 160 160 213 871 603 203 1005 185 775 714 497 255 485 674 665 744 925 790 480 219 973 930 175 711 292 588 971 555 962 964 581 748 448 82 688 336 803 519 1011 47 747 638 742 42 265 221 813 656 33 731 983 474 903 453 354 886 461 429 31 185 334 103 368 801 389 406 504 634 239 921 703 389 727 761 33 761 390 997 963 654 306 414 107 479 21 799 599 616 754 758 1002 80 515 884 718 406 27 625 612 837 368 627 918 949 641 844 507 560 864 218 406 253 1001 160 982 27 132 679 721
wmd1.m4a_0000740160_0000903040.wav 282 526 160 208 14 1002 406 189 481 531 1 964 11 456 325 180 717 703 685 391 402 724 325 385 754 625 625 775 986 136 704 448 148 228 508 451 194 569 754 562 476 676 853 871 203 1001 760 814 773 366 920 384 55 740 727 787 134 25 791 881 962 450 514 80 7 104 547 647 365 994 461 594 703 703 854 854 746 658 416 1003 594 633 736 122 944 5 365 365 14 579 950 46 497 456 713 779 332 422 805 674 625 135 477 580 737 27 827 183 157 470 645 161 416 546 736 456 625 44 503 16 663 799 37 258 134 656 721
wmd1.m4a_0001033600_0001362880.wav 582 272 304 839 576 770 294 479 467 454 437 221 722 320 596 474 535 474 53 280 53 13 545 864 920 177 930 533 497 734 504 731 948 69 44 101 32 771 666 187 958 830 411 21 31 581 775 602 872 320 758 10 74 123 31 526 341 831 294 411 441 320 244 244 1010 283 228 695 865 816 10 328 878 714 596 23 642 239 771 438 666 761 40 448 332 458 172 391 232 491 183 456 807 438 376 172 464 172 938 160 673 560 160 160 216 520 515 845 761 1023 82 439 738 134 254 47 449 608 784 403 949 320 436 424 878 102 687 576 420 602 602 171 814 208 673 660 215 679 578 834 104 631 535 10 764 568 688 181 411 602 23 23 913 642 216 23 758 449 330 606 338 933 805 758 670 187 972 204 480 264 193 543 799 704 673 526 23 23 23 23 23 325 215 679 23 913 913 23 913 660 900 535 23 23 913 214 139 599 103 453 427 863 231 612 893 245 702 554 174 736 685 845 94 576 973 559 201 51 664 321 101 560 511 526 160 160 160 160 216 216 509 603 588 904 121 935 561 527 940 59 387 792 193 758 239 320 760 608 620 917 475 949 362 155 642 602 721
Reference
- https://github.com/yangdongchao/SoundStorm/blob/master/soundstorm/s1/AR/models/t2s_model.py
- https://google-research.github.io/seanet/soundstorm/examples/