Hacker News new | ask | show | jobs
by godot 2211 days ago
I know this article is about Alexa/Echo, but I wish a feature like this is built into TVs :)

I have a young kid now and she's in bed by 8:30. I'd like to watch TV in the living room in the evening after her bed time. I want to watch a movie like say, Avengers. I want to listen to the dialogue instead of/in addition to reading subtitles. The problem is in most movies, you have low volume dialogues, and then there's explosions and stuff with high volume (intended effect; which is nice at the theater, but not nice with a kid sleeping in the next room). I don't want to wear headphones. So I end up with a remote in hand, keep adjusting the volume high or low on reaction as quickly as my reflex allows me to.

10 comments

You want dynamic range compression, which will quiet explosions and louden whispers, usually at the expense of some minor audio quality. It’s probably already in your TV, cable box, or whatever other device.
There's often also explicit human voice boosters too.
I find this an issue with nearly every TV show or movie ever made. The intro music is typically far too loud, and as you say dialogue is significantly quieter than the action scenes. I basically have to watch with the remote in my hand.

I've considered making a bastardised IR Arduino/raspberry pi remote based on sound levels. But of course I can never muster the motivation and don't have practical experience.

If your center channel speaker was broken or misconfigured, it would have exactly this effect. Most dialogue comes through the center channel. Also if one speaker was connected backward it would cancel out part of the mix.
That's interesting, thank you.

I do suspect for some media it's just that they expect me to listen to action scenes/intro jingles louder than I want to (maybe assuming a bigger room / TV further back?)

But I will keep that in mind - can't rule it out, my TV is pretty old, haha

In addition to what others have mentioned, many A/V receivers have this feature as well. It's often called something like "night mode".
There may already be something built in (as another commenter noted) but this is also a feature sold in soundbars, here's the page for it for sonos https://support.sonos.com/s/article/1948?language=en_US
Apple TV has this built in, called "Reduce Loud Sounds". Various external sound systems can do it, too.
I generally have the opposite problem on my AppleTV... I have to crank HBO/Netflix _way_ up to get a reasonable audio level.
There are a bunch of different ways to do exactly this. Definitely would be nice if it was a built-in feature.

Just have to hook up a mic to listen, and tune the audio level results so it's somewhat smart.

For TVs that connect to your network, there might be a built-in integration, or you can keep it simple and write API calls yourself in node-red.

If you have a dumb TV (not internet connected), then you'll probably be limited to solutions involving IR Trasmitters via MySensors[0] or EspHome[1].

[0] https://www.mysensors.org/build/ir [1] https://esphome.io/components/remote_transmitter.html

This makes me pause before going to a movies (especially when combined with the other 99 downsides). The dialogue there is normal to loud, and the loud parts are so loud it hurts. Do people want it like this?
If you have/can use external speakers, there's devices to put in the audio line to do this if your devices can't do it.
The article is not about sound level normalisation, despite the title (which confused me), but rather about automating and/or synchronizing volume levels across speakers with presets invoked based on time of day or other conditions.

It’s also not so much about Alexa but about Node Red, I believe Alexa is just one possible source of sound in the whole system.

It's probably more of an investment than other replies to your comment, but having a receiver with at least a center channel and left/right speakers does wonders to level the volume between dialogue and other sounds. My receiver even has a dialogue setting which emphasizes the human vocal frequencies on the center channel.