Найти индекс в WAV-файле PCM после паузы с Python - PullRequest
2 голосов
/ 09 марта 2011

Мне нужно иметь возможность находить индекс, предпочтительно в миллисекундах, сегмента WAV сразу после паузы (тишины). Я буду использовать этот индекс, чтобы указать, где начинается речь для нового предложения после паузы предыдущего предложения. Я могу предоставить сегмент из двух или трех секунд, который будет содержать паузу и речь с обеих сторон.

Я посмотрел на Python Wave, как открыть и сохранить файл, но я не уверен, как найти первый звук после относительной тишины и получить индекс.

Обновление:

Моя цель - проиндексировать библейские стихи, чтобы пользователь мог выбрать любой стих и услышать его прочитанным. Как только будет найден указатель на первый намек на звук, я сделаю резервную копию на несколько десятков миллисекунд для ввода.

Спасибо

1 Ответ

0 голосов
/ 09 марта 2011

Я использовал это в своем приложении один раз, но я скопировал / вставил его из SO.Спасибо человеку, который написал это;)

import wave

handle = wave.open('file', 'r')

for i in range(handle.getnframes()):
  frame = handle.readframes(i)

  zero = True

  for j in range(len(frame)):
    if ord(frame[j]) > 0:
      zero = False
      break

    if zero:
      print 'Silence found at frame {0}'.format(handle.tell())
...