Я работаю над проектом, где мне нужно записывать речевой аудио и выполнять обработку над ним. Я использую API супрессора шума для снижения фонового шума, но я заметил, что поведение этого API значительно различается в разных устройствах. < /P>
Например, я записал аудио в течение 10 секунд. В этом сценарии я смоделировал источник фонового шума, расположенный на расстоянии 1-2 метра, в то время как фактическая речь происходит только в течение 1-2 секунд во время записи. Pro, samsung s21 fe) < /p>
< /li>
[*] На других устройствах фоновый шум остается заметным в течение 10 секунд. (например, Redmi 10, Vivo S1)
Я не могу определить основу, на которой это поведение отличается, так как более старые устройства/версии Android , кажется, справляются с подавлением шума лучше, чем более новые устройства .record = new AudioRecord(MediaRecorder.AudioSource.VOICE_COMMUNICATION,
SAMPLE_RATE, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSize);
enableNoiseSuppressor();
enableEchoCanceller();
< /code>
public void enableNoiseSuppressor() {
if (NoiseSuppressor.isAvailable()) {
noiseSuppressor = NoiseSuppressor.create(record.getAudioSessionId());
if (noiseSuppressor != null) {
noiseSuppressor.setEnabled(true);
Log.i("NOISE", "NoiseSuppressor enabled");
} else {
Log.e("NOISE", "Failed to create NoiseSuppressor");
}
} else {
Log.e("NOISE", "This device doesn't support NoiseSuppressor");
}
}
public void enableEchoCanceller() {
if (AcousticEchoCanceler.isAvailable()) {
echoCanceler = AcousticEchoCanceler.create(record.getAudioSessionId());
if (echoCanceler != null) {
echoCanceler.setEnabled(true);
Log.i("ECHO", "EchoCanceller enabled");
} else {
Log.e("ECHO", "Failed to create EchoCanceller");
}
} else {
Log.e("ECHO", "This device doesn't support EchoCanceller");
}
}
< /code>
1)Why does the Noise Suppressor behavior vary so much across devices?
2)Does the Android version affect the performance of Noise Suppressor API?
3)Is there a way to identify devices where Noise Suppressor may not work as expected?
4)Are there any best practices or alternative solutions to achieve consistent noise suppression across devices?
Подробнее здесь: https://stackoverflow.com/questions/793 ... ow-to-hand
Почему подавитель Android -шума фиксирует больше фонового шума и как справиться с этим? ⇐ Android
Форум для тех, кто программирует под Android
1754897557
Anonymous
Я работаю над проектом, где мне нужно записывать речевой аудио и выполнять обработку над ним. Я использую API супрессора шума для снижения фонового шума, но я заметил, что поведение этого API значительно различается в разных устройствах. < /P>
Например, я записал аудио в течение 10 секунд. В этом сценарии я смоделировал источник фонового шума, расположенный на расстоянии 1-2 метра, в то время как фактическая речь происходит только в течение 1-2 секунд во время записи. Pro, samsung s21 fe) < /p>
< /li>
[*] На других устройствах фоновый шум остается заметным в течение 10 секунд. (например, Redmi 10, Vivo S1)
Я не могу определить основу, на которой это поведение отличается, так как [b] более старые устройства/версии Android [/b], кажется, справляются с подавлением шума лучше, чем [b] более новые устройства [/b].record = new AudioRecord(MediaRecorder.AudioSource.VOICE_COMMUNICATION,
SAMPLE_RATE, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSize);
enableNoiseSuppressor();
enableEchoCanceller();
< /code>
public void enableNoiseSuppressor() {
if (NoiseSuppressor.isAvailable()) {
noiseSuppressor = NoiseSuppressor.create(record.getAudioSessionId());
if (noiseSuppressor != null) {
noiseSuppressor.setEnabled(true);
Log.i("NOISE", "NoiseSuppressor enabled");
} else {
Log.e("NOISE", "Failed to create NoiseSuppressor");
}
} else {
Log.e("NOISE", "This device doesn't support NoiseSuppressor");
}
}
public void enableEchoCanceller() {
if (AcousticEchoCanceler.isAvailable()) {
echoCanceler = AcousticEchoCanceler.create(record.getAudioSessionId());
if (echoCanceler != null) {
echoCanceler.setEnabled(true);
Log.i("ECHO", "EchoCanceller enabled");
} else {
Log.e("ECHO", "Failed to create EchoCanceller");
}
} else {
Log.e("ECHO", "This device doesn't support EchoCanceller");
}
}
< /code>
1)Why does the Noise Suppressor behavior vary so much across devices?
2)Does the Android version affect the performance of Noise Suppressor API?
3)Is there a way to identify devices where Noise Suppressor may not work as expected?
4)Are there any best practices or alternative solutions to achieve consistent noise suppression across devices?
Подробнее здесь: [url]https://stackoverflow.com/questions/79391985/why-does-android-noise-suppressor-capture-more-background-noise-and-how-to-hand[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия