.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コマンドを使用できます。sayUnixでは、ファイル名のスペースは不都合なので、スペースを下線に変更するには少しの努力が必要です。

% < 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

関連情報