Java 类名:com.alibaba.alink.pipeline.audio.ReadAudioToTensor
Python 类名:ReadAudioToTensor

功能介绍

读取音频文件,并转换为 Alink FloatTensor 格式。

参数说明

名称 中文名称 描述 类型 是否必须? 取值范围 默认值
outputCol 输出结果列列名 输出结果列列名,必选 String
relativeFilePathCol 文件路径列 文件路径列 String
rootFilePath 文件路径 文件路径 String
sampleRate 采样率 采样率 Integer
duration 采样持续时间 采样持续时间 Double
offset 采样开始时刻 采样开始时刻 Double 0.0
reservedCols 算法保留列名 算法保留列 String[] null
numThreads 组件多线程线程个数 组件多线程线程个数 Integer 1

代码示例

Python 代码

以下代码仅用于示意,可能需要修改部分代码或者配置环境后才能正常运行!

  1. dataDir = "https://alink-test-data.oss-cn-hangzhou.aliyuncs.com/audio";
  2. df = pd.DataFrame([
  3. ["246.wav"],
  4. ["247.wav"]
  5. ])
  6. allFiles = BatchOperator.fromDataframe(df, schemaStr='wav_file_path string')
  7. SAMPLE_RATE = 16000
  8. readOp = ReadAudioToTensor().setRootFilePath(dataDir) \
  9. .setSampleRate(SAMPLE_RATE) \
  10. .setRelativeFilePathCol("wav_file_path") \
  11. .setOutputCol("tensor") \
  12. .transform(allFiles)
  13. readOp.print()

Java 代码

  1. package example;
  2. import com.alibaba.alink.operator.batch.BatchOperator;
  3. import com.alibaba.alink.operator.batch.source.MemSourceBatchOp;
  4. import com.alibaba.alink.pipeline.audio.ReadAudioToTensor;
  5. import org.junit.Test;
  6. public class ReadAudioToTensorTest {
  7. @Test
  8. public void testReadAudioToTensor() throws Exception {
  9. String dataDir = "https://alink-test-data.oss-cn-hangzhou.aliyuncs.com/audio";
  10. String[] allFiles = {"246.wav", "247.wav"};
  11. int sampleRate = 16000;
  12. BatchOperator source = new MemSourceBatchOp(allFiles, "wav_file_path");
  13. ReadAudioToTensor pipe = new ReadAudioToTensor()
  14. .setRootFilePath(dataDir)
  15. .setSampleRate(sampleRate)
  16. .setRelativeFilePathCol("wav_file_path")
  17. .setDuration(2)
  18. .setOutputCol("tensor");
  19. pipe.transform(source).print();
  20. }
  21. }

运行结果

| wav_file_path | tensor | | —- | —- |

| 246.wav | FLOAT#32000,1#-7.324219E-4 -0.0010986328 -9.460449E-4 … |

| 247.wav | FLOAT#32000,1#-0.0057678223 -0.0051574707 -0.0036315918 … |