From 9ee3eaec90e151a3d06586e30ae037cf92073222 Mon Sep 17 00:00:00 2001 From: VergilWang15 Date: Wed, 23 Mar 2022 16:25:24 +0800 Subject: [PATCH] Update README.md --- README.md | 35 ++++++++++++++++++++++++++++++++++- src/example.py | 4 ++-- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index bead57e..b422a85 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,41 @@ 安装poetry后,简单使用```poetry install```即可安装依赖 ## 使用 -###寻找一个格式的子类型: +本例程使用[sounddevice](https://python-sounddevice.readthedocs.io/en/0.4.4/usage.html)来对音频做播放或录制,使用[soundFile](https://python-soundfile.readthedocs.io/en/0.10.3post1/)来解析音频。 + +测试例程请在虚拟环境下执行```src\example.py```即可 + +### 项目结构 + ``` +pxua216mb-exp +├── recorded_audio +│ └── testfile.raw +├── src +│ ├── example.py +│ └── settings.py +├── test_audio +│ ├── test_audio_16k.raw +│ └── test_audio_48k.raw +├── poetry.lock +├── pyproject.toml +└── README.md +``` + +### 解释项目结构 + +- `/recorded_audio/` - 包含通过`exmaple.py`生成的音频记录文件,是音频输出的默认位置 +- `/src/` - 包含项目源码,`example.py`包含了所有示例,包括主进程和几个示例函数在内,`settings.py`包括了一些设备的快速定义,这些定义将会在`example.py`中被使用。在测试时,您应当执行example.py +- `/test_audio/` - 包含了所有的测试音频,`test_audio_16k.raw`是采样率16k,双声道,16bit位深的音频,`test_audio_48k.raw`是采样率48k,双声道,16bit位深的音频 +- `poetry.lock` - poetry的标记文件,此文件不应由您手动修改 +- `pyproject.toml` - 本项目通过poetry进行版本控制,您可以在此处增加依赖项或更新依赖 + +### 寻找一个音频格式的子类型: + +```python >>> import soundfile as sf >>> sf.available_subtypes('RAW') +>>> {'PCM_S8': 'Signed 8 bit PCM', 'PCM_16': 'Signed 16 bit PCM', 'PCM_24': 'Signed 24 bit PCM', 'PCM_32': 'Signed 32 bit PCM', 'PCM_U8': 'Unsigned 8 bit PCM', 'FLOAT': '32 bit float', 'DOUBLE': '64 bit float', 'ULAW': 'U-Law', 'ALAW': 'A-Law', 'GSM610': 'GSM +6.10', 'DWVW_12': '12 bit DWVW', 'DWVW_16': '16 bit DWVW', 'DWVW_24': '24 bit DWVW', 'VOX_ADPCM': 'VOX ADPCM'} + ``` \ No newline at end of file diff --git a/src/example.py b/src/example.py index 8f8ccc0..c2ca0f7 100644 --- a/src/example.py +++ b/src/example.py @@ -20,7 +20,7 @@ def select_device(device_type='output'): def play_pcm_raw(): - # path = '../test_audio/test_audio_48k.raw' + # path = '../test_audio/test_audio_48k.raw' # 测试播放48k音频 path = '../recorded_audio/testfile.raw' # 此处的.raw文件即为pcm格式音频 # 解析pcm文件并存放到数据流中 # 需要4个变量:文件路径,音频通道数,采样率,音频子类型 @@ -55,7 +55,7 @@ if __name__ == '__main__': output_channels = settings.MAX_OUTPUT_CHANNEL device_list = sd.query_devices() # 获取电脑上的所有音频设备 - recording() + recording() # 播放音频 while True: play_pcm_raw() user_input = input("输入1继续播放,输入2退出测试")