4

いくつかの音声ファイルをいくつかの書かれた文章に一致させようとしています。

私は、入力された文章を誰かが読んでいる単一の音声ファイルから始めました。次に、オーディオ ファイルを無音の時間ごとに でsox分割し、同様にタイプ テキストを分割して、それぞれの一意の文が一意の行になるようにします。

ただし、分割はすべての期間で完全に発生したわけではなく、スピーカーが一時停止するたびに発生しました。入力した文に対応するオーディオ ファイルのリストを作成する必要があります。

0001.wav This is a sentence.
0002.wav This is another sentence.

2 つ以上の音声ファイルが 1 つの文に対応する場合があることに注意してください。たとえば、次のようになります。

  • 0001.wav ("これは") + 0002.wav ("文") = "これは文です。"

テキストの一致を助けるために、ソフトウェアを使用して音声の音節を数え、入力されたテキストの音節を数えました。

このデータを含む 2 つのファイルがあります。最初の "sentences.txt" は、テキストからのすべての文のリストで、1 行に 1 つずつ表示され、音節の数とともに表示されます。例:

5 これは文です。
7 これは別の文です。
8 これはまた別の文です。
9 これはまだ別の文です。

awk -f" " { print $1 } sentences.txtこれを使用して文データを削除できますsyllables_in_text.txt:

5
7
8
9

2 番目のファイルにsyllables_in_audio.txtは、音声ファイルのリストが同じ順序で、おおよその音節数とともに含まれています。音節カウント ソフトウェアが完全ではないため、テキストの実際の数よりも少し少ない場合があります。

0001.wav 3
0002.wav 2
0003.wav 4
0004.wav 5
0005.wav 7
0006.wav 3
0007.wav 2
0008.wav 3

音声ファイルのファイル名が「sentences.txt」のテキスト文と同じ行に表示されるように、音声ファイルのリスト (「output.txt」) を出力するにはどうすればよいですか?

0001.wav 0002.wav
0003.wav 0004.wav
0005.wav
0006.wav 0007.wav 0009.wav

以下は、2 つのファイルを並べて配置した場合の 2 つのファイルの表です。「これは文章です」という文を作るには、「0001.wav」と「0002.wav」の両方のファイルが必要です。これらのファイル名は「output.txt」の 1 行目にリストされ、対応する文は「sentences.txt」の行にテキストで書き込まれます。

Contents of "output.txt":    | Contents of "sentences.txt":
0001.wav 0002.wav            | 5 This is a sentence.
0003.wav 0004.wav            | 7 This is another sentence.
0005.wav                     | 8 This is yet another sentence.
0006.wav 0007.wav 0009.wav   | 9 This is still yet another sentence.
4

2 に答える 2

1

別のリスト (5) で (2 と 3) を一致させる方法のルールについて説明してもらえますか?

始めるためにサンプルを作成します。修正してください。

$ cat sentences.txt
5 This is a sentence.
7 This is another sentence.
8 This is yet another sentence.
9 This is still yet another sentence.

$ cat syllables_in_audio.txt
0001.wav 5
0002.wav 5
0003.wav 7
0004.wav 7
0005.wav 8
0006.wav 9
0007.wav 9
0008.wav 9

したがって、 awk コマンドを実行して出力を取得しても問題ありません。

awk 'NR==FNR{a[$1]=$0;next}{b[$2]=b[$2]==""?$1:b[$2] FS $1}END{for (i in a) printf "%-40s|%s\n", b[i], a[i]}' sentences.txt syllables_in_audio.txt

結果

0001.wav 0002.wav                       |5 This is a sentence.
0003.wav 0004.wav                       |7 This is another sentence.
0005.wav                                |8 This is yet another sentence.
0006.wav 0007.wav 0008.wav              |9 This is still yet another sentence.
于 2013-12-20T04:43:47.213 に答える