pcm音頻的錄製、播放及轉換

来源:https://www.cnblogs.com/MikeZhang/archive/2023/03/30/pcm20232330.html
-Advertisement-
Play Games

操作系統 :Windows10_x64 pcm格式為原始音頻數據,有時候會遇到需要錄製、播放及轉換的情況,這裡記錄下。 一、錄製pcm音頻 這裡演示下使用Audacity進行pcm音頻錄音的過程。 Audacity的使用可參考這篇文章:Audacity開源音頻處理軟體使用入門 1)打開Audacit ...


操作系統 :Windows10_x64

pcm格式為原始音頻數據,有時候會遇到需要錄製、播放及轉換的情況,這裡記錄下。

一、錄製pcm音頻

這裡演示下使用Audacity進行pcm音頻錄音的過程。

Audacity的使用可參考這篇文章:Audacity開源音頻處理軟體使用入門

1)打開Audacity軟體;

採樣率使用 16000 HZ ,使用單聲道。

 

 2)選擇導出音頻文件;

 

 3)設置導出參數;

保存類型使用:其它無壓縮音頻文件

數據頭格式:RAW(header-less)

編碼:Signed 16-bit PCM

至此,音頻錄製完成。

二、播放pcm音頻

pcm音頻為原始格式,一般播放器不支持播放,這裡演示下使用Audacity軟體和ffplay播放的過程。

1、使用Audacity播放

1)打開audacity軟體,選擇“導入-》原始數據”選項;

 2)在彈出的對話框中設置播放參數;

這裡選中 16bit PCM 、單聲道、1600HZ

 3)參數設置完畢,執行導入操作,在界面點擊播放即可聽取音頻;

2、使用ffmpeg播放pcm音頻

ffmpeg裡面有一個ffplay應用,可播放pcm音頻,命令如下:

ffplay.exe -ar 16000 -ac 1 -f s16le -i test1.raw

播放效果如下:

三、pcm文件格式轉換

1、使用Audacity進行轉換

導入pcm後,可以使用Audacity將音頻轉換為mp3、wav等格式。

2、使用ffmpeg進行轉換

可使用ffmpeg進行pcm音頻格式轉換,示例如下:

ffmpeg.exe -ar 16000 -ac 1 -f s16le -i test1.raw test1.mp3
ffmpeg.exe -ar 16000 -ac 1 -f s16le -i test1.raw test1.wav

四、pcm編碼實時轉換

voip通信場景,會遇到需要實時將pcm音頻轉換為其它編碼的情況,這裡以pcm編碼轉pcma為例子進行演示。

主要分為以下兩個步驟:

1、將16k pcm轉換為8k pcm;

2、將8k pcm轉換為pcma編碼;

代碼從如下途徑獲取:

關註微信公眾號(聊聊博文,文末可掃碼)後回覆 2023033001 獲取。

五、資源下載

本文涉及資源可從百度網盤獲取:

https://pan.baidu.com/s/1DHjexr8flZCJx29lweyDVQ 

 

 關註微信公眾號(聊聊博文,文末可掃碼)後回覆 2023033001 獲取。

微信公眾號:

  • E-Mail : [email protected]
  • 轉載請註明出處,謝謝!
    您的分享是我們最大的動力!

    -Advertisement-
    Play Games
    更多相關文章
    • 面向對象2 訪問修飾符 | | private | default | protected | public | | | | | | | | 當前類 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_che ...
    • JavaSE 運算符 算術運算符:+,-,*,/,%,++(自增),--(自減) i++:先用後+1;++i:先+1後用 賦值運算符:= 擴展賦值運算符:+=,-=,*=,/= a+=b >a=a+b: ​ 可讀性差,但是編譯效率高,且會自動進行類型轉換; ​ 當ab為基本數據類型時,a+b和b+a ...
    • NX中的checkmate功能是用於檢查模型、圖紙數據的工具,在UGOPEN中有例子。手動操作可以檢查已載入的裝配下所有零部件,可以設置通過後保存模型,檢查結果保存到Teamcenter中,預設保存在零組件版本下。 代碼中可以設置多個檢查規則。相關設置可以在用戶預設設置中進行設置。 1 // 2 / ...
    • 面向對象1 面向對象,更在乎的結果,而過程的實現並不重要 IDea快捷鍵(基礎版) | 快捷鍵 | 作用 | | | | | ctrl + / | 快捷註釋 | | ctrl + shift + / | 多行註釋 | | ctrl + d | 快速複製 | | ctrl + shift + up/d ...
    • 在前一篇文章,我們瞭解瞭如何通過.NET6+Quartz開發基於控制台應用程式的定時任務,今天繼續在之前的基礎上,進一步講解基於ASP.NET Core MVC+Quartz實現定時任務的可視化管理頁面,僅供學習分享使用,如有不足之處,還請指正。 涉及知識點 Quartz組件,關於Quartz組件的 ...
    • 原文作者:aircraft 原文鏈接:https://www.cnblogs.com/DOMLX/p/17270107.html 加工的泛型類如下: using System; using System.Collections.Generic; using System.IO; using Syst ...
    • 就像 Web Api 介面可以對入參進行驗證,避免用戶傳入非法的或者不符合我們預期的參數一樣,選項也可以對配置源的內容進行驗證,避免配置中的值與選項類中的屬性不對應或者不滿足預期,畢竟大部分配置都是通過字元串的方式,驗證是很有必要的。 1. 註解驗證 像入參驗證一樣,選項驗證也可以通過特性註解方便地 ...
    • 合宙說要出Bluepill已經很久了, 之前的黑色板子雖然也不錯但是對於習慣STM32的同學總是有些彆扭, 有幾個PIN沒引出而且PB12和PB14之間有電阻, 會對SPI造成干擾. 換成喜聞樂見的 Bluepill 板型後就友好多了, 一些STM32的場景也能無縫替換. ...
    一周排行
      -Advertisement-
      Play Games
    • 隨著Aspire發佈preview5的發佈,Microsoft.Extensions.ServiceDiscovery隨之更新, 服務註冊發現這個屬於老掉牙的話題解決什麼問題就不贅述了,這裡主要講講Microsoft.Extensions.ServiceDiscovery(preview5)以及如何 ...
    • 概述:通過使用`SemaphoreSlim`,可以簡單而有效地限制非同步HTTP請求的併發量,確保在任何給定時間內不超過20個網頁同時下載。`ParallelOptions`不適用於非同步操作,但可考慮使用`Parallel.ForEach`,儘管在非同步場景中謹慎使用。 對於併發非同步 I/O 操作的數量 ...
    • 1.Linux上安裝Docken 伺服器系統版本以及內核版本:cat /etc/redhat-release 查看伺服器內核版本:uname -r 安裝依賴包:yum install -y yum-utils device-mapper-persistent-data lvm2 設置阿裡雲鏡像源:y ...
    • 概述:WPF界面綁定和渲染大量數據可能導致性能問題。通過啟用UI虛擬化、非同步載入和數據分頁,可以有效提高界面響應性能。以下是簡單示例演示這些優化方法。 在WPF中,當你嘗試綁定和渲染大量的數據項時,性能問題可能出現。以下是一些可能導致性能慢的原因以及優化方法: UI 虛擬化: WPF提供了虛擬化技術 ...
    • 引言 上一章節介紹了 TDD 的三大法則,今天我們講一下在單元測試中模擬對象的使用。 Fake Fake - Fake 是一個通用術語,可用於描述 stub或 mock 對象。 它是 stub 還是 mock 取決於使用它的上下文。 也就是說,Fake 可以是 stub 或 mock Mock - ...
    • 為.net6在CentOS7上面做準備,先在vmware虛擬機安裝CentOS 7.9 新建CentOS764位的系統 因為CentOS8不更新了,所以安裝7;簡單就一筆帶過了 選擇下載好的操作系統的iso文件,下載地址https://mirrors.aliyun.com/centos/7.9.20 ...
    • 經過前面幾篇的學習,我們瞭解到指令的大概分類,如:參數載入指令,該載入指令以 Ld 開頭,將參數載入到棧中,以便於後續執行操作命令。參數存儲指令,其指令以 St 開頭,將棧中的數據,存儲到指定的變數中,以方便後續使用。創建實例指令,其指令以 New 開頭,用於在運行時動態生成並初始化對象。方法調用指... ...
    • LiteDB 是一個輕量級的嵌入式 NoSQL 資料庫,其設計理念與 MongoDB 類似,但它是完全使用 C# 開發的,因此與 C# 應用程式的集成非常順暢。與 SQLite 相比,LiteDB 提供了 NoSQL(即鍵值對)的數據存儲方式,並且是一個開源且免費的項目。它適用於桌面、移動以及 We ...
    • 1 開源解析和拆分文檔 第三方的工具去對文件解析拆分,去將我們的文件內容給提取出來,並將我們的文檔內容去拆分成一個小的chunk。常見的PDF word mark down, JSON、HTML。都可以有很好的一些模塊去把這些文件去進行一個東西去提取。 優勢 支持豐富的文檔類型 每種文檔多樣化選擇 ...
    • OOM是什麼?英文全稱為 OutOfMemoryError(記憶體溢出錯誤)。當程式發生OOM時,如何去定位導致異常的代碼還是挺麻煩的。 要檢查OOM發生的原因,首先需要瞭解各種OOM情況下會報的異常信息。這樣能縮小排查範圍,再結合異常堆棧、heapDump文件、JVM分析工具和業務代碼來判斷具體是哪 ...