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
    • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
    • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
    • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
    • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
    • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
    • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
    • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
    • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
    • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
    • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...