我最近买了 BT Sony 耳机。当我将其切换到 A2DP 配置文件时,一切都很好。但是当我切换到 HSP/HFP 进行视频会议时,声音太糟糕了,我听不懂其他参与者的声音。有什么办法可以解决吗?我买耳机就是为了开会,但耳机却不能用于开会,这真的很烦人。
答案1
自从我买了 Sennheisers 耳机后,我就有这个问题 6 个月了。看来耳机配置文件 (HSP/HFP) 定义了至少 2 个编解码器,速率分别为 8KHz 和 16KHz。Windows 和 Android 可以使用 16KHz,而 Linux 只使用 8KHz(我猜想压缩方式不同,因为低音也很糟糕)。在 Google 上搜索,所有“低质量”问题似乎都与聆听有关(即:通过 A2DP 开关解决),而不是与会议有关。
在这几个月里,我只发现一个错误报告,说 ChromeOS 运行得更好(并且无法将这些补丁移植到 Linux 发行版)。
PS:请不要将其设置为答案。我更喜欢一个实际上指向 16KHz 解决方案的答案。
答案2
我遇到了同样的问题,目前我已经解决了这个问题,以便在会议结束后我至少可以轻松切换到 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"