PCM - это временная кодировка звука. За каждый период времени вы получаете пиковый уровень. (Если вам нужна физическая справка для этого: пиковый уровень соответствует расстоянию, на которое мембрана микрофона была перемещена из своего положения покоя в данный момент времени.)
Давайте забудем, что PCM может использовать беззнаковые значения для 8-битных выборок и сосредоточиться на
подписанные значения. Если значение> 0, мембрана была на одной стороне от своего положения покоя, если это <0, она была на другой стороне. Чем больше вывих от отдыха (независимо от того, с какой стороны), тем громче звук. </p>
Большинство методов классификации голоса начинаются с одного очень простого шага: они сравнивают пиковый уровень с пороговым уровнем. Если пиковый уровень ниже порога, звук считается фоновым шумом.
Если посмотреть на параметры в Silence Finder Audacity, этим порогом должен быть silence level
. Следующий параметр, Minimum silence duration
, - это, очевидно, продолжительность периода молчания, который требуется для обозначения перерыва (или, в вашем случае, конца предложения).
Если вы хотите написать подобный инструмент самостоятельно, я рекомендую следующий подход:
- Разделите ваш звуковой образец на отдельные наборы определенной длительности. Я бы начал с 1/10, 1/20 или 1/100 секунды.
- Для каждого из этих наборов рассчитать максимальный пиковый уровень
- Сравните этот максимальный пик с пороговым значением (
silence level
в Audacity). Порог - это то, что вы должны определить самостоятельно, исходя из особенностей вашего образца звука (громкости, фонового шума и т. Д.). Если максимальный пик ниже вашего порога, этот набор является тишиной.
- Теперь проанализируйте ряд классифицированных наборов: рассчитайте длительность тишины в вашей записи. (длина = количество тихих наборов * длина набора). Если он выше вашего
Minimum silence duration
, предположим, что у вас есть конец предложения здесь.
Основной смысл кодирования этого кода самостоятельно вместо того, чтобы продолжать использовать Audacity, заключается в том, что вы можете улучшить свою классификацию, используя расширенные методы анализа. Одна очень простая метрика, которую вы можете применить, называется частота пересечения нуля , она просто подсчитывает, как часто знак переключается в заданном наборе пиковых уровней (то есть ваши значения пересекают линию 0). Есть еще много, все они более сложны, но это может стоить усилий. Взгляните на дискретные косинусные преобразования , например ...