簡體   English   中英

xamarin iOS:如何在錄制時顯示語音的音頻幅度

[英]xamarin iOS: How to show the audio amplitude of the voice when recording

在Android上,我發現顯示記錄的幅度我可以定期使用getMaxAmplitude。 iOS是否具有相同的功能? 我想在麥克風錄音時顯示輸入的語音音量表。

假設您正在使用AVAudioRecorder您可以啟用計量並讀取每個音頻通道的平均和峰值音量(以分貝為單位)。

樣品麥克風每秒10次:

# AVAudioSettings setup ...
~~~
avAudioRecorder = AVAudioRecorder.Create(this.audioFilePath, new AudioSettings(settings), out error);
avAudioRecorder.MeteringEnabled = true;

var peakPower = 0.0;
var averagePower = 0.0;
// Note: No await, run the following Task synchronously!
Task.Run(async() => // Personally I would create my own Thread, but this works for a quick example
{
    while (true) // Do not create object/release objects or subtasks in this loop, it will cause poor performance due to GC.
    {
        if (!avAudioRecorder.Recording)
            return;
        avAudioRecorder.UpdateMeters();
        peakPower = avAudioRecorder.PeakPower(0);
        averagePower = avAudioRecorder.AveragePower(0);
        Console.WriteLine($"{averagePower}:{peakPower}");
        Thread.Sleep(100);
    }
});

輸出:

2017-01-14 19:26:16.271 Sound[33399:19078946] -52.9222717285156:-48.1419296264648
2017-01-14 19:26:17.271 Sound[33399:19078946] -53.7662239074707:-45.7719497680664
2017-01-14 19:26:18.274 Sound[33399:19078946] -49.105827331543:-43.4426803588867
2017-01-14 19:26:19.275 Sound[33399:19078946] -9.97611618041992:4.59128427505493
2017-01-14 19:26:20.276 Sound[33399:19078946] -37.2582626342773:5.28962087631226
2017-01-14 19:26:21.276 Sound[33399:19078946] -24.4357891082764:4.00279855728149
2017-01-14 19:26:22.277 Sound[33399:19078946] -11.7632217407227:4.34794473648071
2017-01-14 19:26:23.278 Sound[33399:19078946] -32.4504356384277:5.66976404190063
2017-01-14 19:26:24.279 Sound[33399:19078946] -18.5233268737793:0.0205818619579077
2017-01-14 19:26:25.280 Sound[33399:19078946] -28.790828704834:-5.83084678649902

參考: https//developer.apple.com/reference/avfoundation/avaudiorecorder

以分貝為單位,用於錄制聲音。 返回值0 dB表示滿量程或最大功率; 返回值為-160 dB表示最小功率(即接近靜音)。

如果提供給錄音機的信號超過±滿量程,則返回值可能超過0(即,它可能進入正范圍)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM