.csv 파일의 텍스트를 음성 오디오 파일로 일괄 쓰기

.csv 파일의 텍스트를 음성 오디오 파일로 일괄 쓰기

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

마지막 열이 음성 이름이고 전체 라인을 말해야 한다고 가정하고 각 라인 입력에 대해 awkRun 명령을 사용할 수 있습니다 . 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?

관련 정보