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
    • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
    • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
    • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
    • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
    • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
    • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
    • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
    • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
    • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
    • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...