Очень плохое качество звука на профиле HSP/HFP, BT гарнитура Sony

Я недавно купил BT гарнитура Sony. Когда я переключаю его на профиль A2DP, все хорошо работает. Но когда я переключаюсь на HSP/HFP для видеоконференции, звук так ужасен, что я не могу понять других участников. Есть ли что-нибудь, что может быть сделано об этом? Это является действительно раздражающим, я не могу использовать свою гарнитуру для конференций, когда я купил их точно для этого.

0
задан 10 October 2019 в 13:14

2 ответа

У меня есть эта проблема в течение 6 месяцев, когда я купил свои Sennheiser. Кажется, что профиль гарнитуры (HSP/HFP) определяет по крайней мере 2 кодека с уровнями на 16 кГц и на 8 кГц. Windows и Android могут использовать 16 кГц, тогда как Linux только использует 8 кГц (и я принимаю другое сжатие, так как минимумы также ужасны). Ища на Google, все вопросы "о низком качестве", кажется, связаны со слушанием (т.е.: решенный переключателем A2DP), не для конференций.

Во всех тех месяцах я только нашел отчет об ошибках, в котором говорится, что ChromeOS работает лучше (и неспособность портировать те патчи к дистрибутивам Linux).

PS: постарайтесь не устанавливать это как ответ. Я предпочел бы тот, который на самом деле указывает на решение на 16 кГц.

1
ответ дан 22 December 2019 в 00:22

У меня та же проблема, на данный момент я обошел ее, чтобы после конференции я мог легко переключиться на a2dp_sink.

#!/bin/bash
bluetoothctl connect FC:58:FA:13:75:6F
DEFAULT_SINK=$(pactl list short sinks | grep "pci" | awk '{print $2}')
echo "Muting $DEFAULT_SINK"
pactl set-sink-mute "$DEFAULT_SINK" "1"

if [ $1 == "1" ]; then 
    echo "Card Profile Selected: a2dp_sink"
    card_profile="a2dp_sink"
else  
    echo "Card Profile Selected: headset_head_unit"
    card_profile="headset_head_unit"
fi     


pactl set-card-profile bluez_card.FC_58_FA_13_75_6F $card_profile

sink=$(pactl list short sinks | grep -i 'bluez_sink' | cut -c1-2)

if [ -z $sink ]; then
    echo "Usage: $0 <sinkId/sinkName>" >&2
    echo "Valid sinks:" >&2
    pactl list short sinks >&2
    exit 1
fi

newSink="$sink"
echo $newSink

pactl list short sink-inputs|while read stream; do
    streamId=$(echo $stream|cut '-d ' -f1)
    echo "moving stream $streamId"
    pactl move-sink-input $streamId $newSink
done

echo "Unmuting $DEFAULT_SINK"
pactl set-sink-mute "$DEFAULT_SINK" "0"
-1
ответ дан 29 April 2020 в 11:43

Другие вопросы по тегам:

Похожие вопросы: