Human remains were also discovered at the same location on the sea bed, a senior official said.
The second of two "black boxes" to be located, the voice recorder could provide investigators with crucial insight into what went wrong in the final moments of flight JT610.
The Boeing 737 MAX 8 jet, which was only two months old, plunged into the sea just 13 minutes after take off from Jakarta's international airport on 29 October. It had been heading for Depati Amir Airport in Pangkal Pinang.
The first black box, the flight's data recorder, was recovered within days of the crash. It showed the jet's airspeed indicator had malfunctioned on its last four flights.
Relatives of the deceased questioned why the aircraft was cleared for take-off after problems were reported on the previous flight from Bali, during which it experienced a rapid descent that scared passengers.
Bambang Sukandar, whose son was on the fatal flight, said: “Lion Air said the problem was fixed, is it true the problem was cleared? If not, technicians in charge must be responsible.”
A local TV station reported that the voice recorder had been recovered from the sea bed on Monday and taken aboard a navy ship. The navy vessel had been called in to assist the search for the recorder after a 10-day effort funded by Lion Air, but hampered by bad weather, found nothing.
Naval Lieutenant Colonel Agung Nugroho told the Reuters news agency a weak signal from the recorder had been detected for several days and that it had been found buried in about 8 metres (26 ft) of mud in waters about 30 metres deep.
"We don't know what damage there is, it has obvious scratches on it," he said.
The Lion Air crash was the worst airline disaster in Indonesia since 1997, when 234 people died on a Garuda flight near Medan. In December 2014, an AirAsia flight from Surabaya to Singapore plunged into the sea, killing all 162 on board.
More about: LionAir