Mac에서 ZSH를 처음 사용하며 .csv 파일에서 WAV 오디오 파일을 일괄 생성하기 위한 간단한 셸 스크립트를 작성하는 데 도움을 찾고 있습니다.
3개의 데이터 열(AB C)이 포함된 .csv 파일을 만들었습니다. 텍스트 음성 변환으로 각 줄을 읽고 해당 줄을 .WAV 파일에 쓰고 싶습니다.
샘플은 다음과 같습니다:
폴더 "텍스트 변환"
.csv 파일 "HelloSounds.csv"
A, B, C
Hello, my name is, Fred
Hello, your name is, Anne
Hello, is your name, Charles
콘텐츠를 반영하기 위해 사운드를 선택하거나 파일 이름을 지정하는 방법을 잘 모르겠습니다.
어떤 도움이라도 대단히 감사하겠습니다. 감사합니다.
답변1
다음 input
파일을 사용하십시오.
% < input
A, B, C
Hello, my name is, Fred
Hello, your name is, Anne
Hello, is your name, Charles
마지막 열이 음성 이름이고 전체 라인을 말해야 한다고 가정하고 각 라인 입력에 대해 awk
Run 명령을 사용할 수 있습니다 . say
유닉스에서 파일 이름의 공백은 형편없기 때문에 공백을 밑줄로 바꾸려면 약간의 노력이 필요합니다.
% < input awk '/Hello/{file=$0;gsub(" ","_",file);system("say -v " $NF " -o " file ".wav " $0)}'
Opening output file failed: fmt?
Voice `Anne' not found.
Voice `Charles' not found.
하지만 say
내 시스템은 "*.wav" 파일 형식을 좋아하지 않는 것 같습니다. 따라서 AIFF를 만들 수도 있습니다.
% < input awk '/Hello/{file=$0;gsub(" ","_",file);system("say -v " $NF " -o " file " " $0)}'
Voice `Anne' not found.
Voice `Charles' not found.
% file Hello,_my_name_is,_Fred.aiff
Hello,_my_name_is,_Fred.aiff: IFF data, AIFF-C compressed audio
% afplay Hello,_my_name_is,_Fred.aiff
그런 다음 비슷한 프로그램을 사용하여 AIFF를 WAV로 변환하시겠습니까 ffmpeg
?