系统新接入语音引擎。
语音引擎只认 pcm 格式数据。前端只认 wav 格式 。
需要后端对 pcm 和 wav 格式实现互转,特此编写工具类,并提供测试用例。
- 提供简练的
Java api
实现格式转化pcmToWav()
wavToPcm()
- 复习
Java 7
的文件操作 - 编写工具类和测试用例,刻意进行
clean code
练习
- 测试用例使用了
Java 7
开始引入的文件操作api - 测试用例使用了
Java nio
完成文件下载功能
- 执行
AudioFormatConverterTest
- 观察新生成的文件
- 能支持幂等执行测试用例,可debug进行调试
- 字节数组的拼接 项目中语音数据通过字节流传播,对 pcm 数据可以任意裁剪叠加。 pcm 数据增加一倍,音频播放的内容重复一遍。
- base64 字符串的拼接 对byte[]进行base64编码。byte[]场景下,两段base64字符串拼接。 验证新字符串无法正常解码为byte[]。
Assertions.assertThatIllegalArgumentException().isThrownBy(() -> {
// 对二进制进行 base64
byte[] pcmBytes = Files.readAllBytes(SAMPLE_PCM_FILE);
// 两段 base64 拼接
String base64 = Base64.getEncoder().encodeToString(pcmBytes) + Base64.getEncoder().encodeToString(pcmBytes);
// 解码
Base64.getDecoder().decode(base64);
});