WiTiAi 发表于 2023-7-28 15:51:16

提取AISHELL-1输入输出

提取AISHELL-1输入输出
【1】采用halcon进行提取
dev_update_off()
dev_set_draw('margin')
pathwav:='D:/2-LearningCode/902-ASR/AISHELL-1/data_aishell/wav/train'
pathtrans := 'D:/2-LearningCode/902-ASR/AISHELL-1/data_aishell/transcript'
pathtranscript:='D:/2-LearningCode/902-ASR/AISHELL-1/data_aishell/transcript/aishell_transcript_v0.8.txt'
pathtranscriptWords := []
open_file (pathtranscript, 'input', FileHandle)
IsEOF := 0
nums := []
k:=0
while (IsEOF == 0)
fread_line (FileHandle, Number, IsEOF)
pathtranscriptWords := Number
k:=k+1
endwhile
close_file (FileHandle)
*      
WavInputOut := ''
list_files(pathwav, 'directories', Files)
for i:= 0 to |Files|-1 by 1
    FilePath:=Files
    list_image_files(FilePath, 'wav', [], WavFiles)
    for j:= 0 to |WavFiles|-1 by 1
      WavFile := WavFiles
      tuple_split(WavFile, '/', Substrings)
      WavNameExt := Substrings[|Substrings|-1]
      tuple_split(WavNameExt, '.wav', Substrings1)
      WavName:= Substrings1
      * 在pathtranscript里面查找对应的wav对应的输出
      WavNameOutput := ''
      for k:=0 to |pathtranscriptWords|-1 by 1
            scriptWord := pathtranscriptWords
            tuple_split(scriptWord, ' ', Substrings2)
            tuple_length(Substrings2, Length1)
            if(Length1>0)
                if(Substrings2==WavName)
                  tuple_split(scriptWord, WavName, Substrings3)
                  tuple_strlen(Substrings3, Length)
                  tuple_substr(Substrings3, 1, Length-1, Substring)
                  WavNameOutput := Substring
                  break
                endif
            endif
      endfor
      WriteTxt (FilePath + WavName + '.txt', WavNameOutput)
      WavInputOut := WavInputOut + WavFile + ',' + FilePath + WavName + '.txt' + '\n'
    endfor
endfor
*
resPath := 'D:/2-LearningCode/902-ASR/AISHELL-1/data_aishell/'
WriteTxt (resPath + 'ASRInfo.txt', WavInputOut)
写txt
file_exists(File_Name,FileExits)
if(FileExits)
    delete_file(File_Name)
    open_file(File_Name,'append',FileHandle)
else
    open_file(File_Name,'output',FileHandle)
endif
fwrite_string(FileHandle, outputstr + '\n')
close_file (FileHandle)
return ()
得到结果如下:

D:/2-LearningCode/902-ASR/AISHELL-1/data_aishell/wav/train/S0002/BAC009S0002W0122.wav,D:\2-LearningCode\902-ASR\AISHELL-1\data_aishell\wav\train\S0002\BAC009S0002W0122.txt
D:/2-LearningCode/902-ASR/AISHELL-1/data_aishell/wav/train/S0002/BAC009S0002W0123.wav,D:\2-LearningCode\902-ASR\AISHELL-1\data_aishell\wav\train\S0002\BAC009S0002W0123.txt
D:/2-LearningCode/902-ASR/AISHELL-1/data_aishell/wav/train/S0002/BAC009S0002W0124.wav,D:\2-LearningCode\902-ASR\AISHELL-1\data_aishell\wav\train\S0002\BAC009S0002W0124.txt
D:/2-LearningCode/902-ASR/AISHELL-1/data_aishell/wav/train/S0002/BAC009S0002W0125.wav,D:\2-LearningCode\902-ASR\AISHELL-1\data_aishell\wav\train\S0002\BAC009S0002W0125.txt
D:/2-LearningCode/902-ASR/AISHELL-1/data_aishell/wav/train/S0002/BAC009S0002W0126.wav,D:\2-LearningCode\902-ASR\AISHELL-1\data_aishell\wav\train\S0002\BAC009S0002W0126.txt







页: [1]
查看完整版本: 提取AISHELL-1输入输出