首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Deeplearning4J的org.datavec.audio.Spectrogram生成光谱图图像?

如何从Deeplearning4J的org.datavec.audio.Spectrogram生成光谱图图像?
EN

Stack Overflow用户
提问于 2018-09-20 20:32:20
回答 1查看 356关注 0票数 1

我正在寻找在Android应用程序中生成光谱图图像的方法。我已经找到了this project,它似乎完成了所需工作的一半:它加载音频文件,并在给定的时间和频率创建一个2d强度数组。然而,现在我有点迷惑了:如何从这些数据中生成人类可见的图片?

据我所知,它将涉及到将强度值从-1,1浮点范围映射到像素颜色。但作为音频处理的新手,我不知道其他应用程序是如何做到这一点的。

我并不是在寻找确切的代码:我只喜欢对一般方法的描述。

EN

回答 1

Stack Overflow用户

发布于 2019-04-19 03:37:35

该库提供了函数public double[][] getNormalizedSpectrogramData()来返回音频频谱图数据,该数据是归一化数字数据(介于0和之间)。

返回值第一个索引是样本数,而第二个索引是频率范围值(我可能是错的,欢迎更正!)

有很多方法可以显示这一点,我在JavaFX中创建了一个工作示例:

代码语言:javascript
复制
import javafx.event.ActionEvent;
import javafx.scene.image.ImageView;
import javafx.scene.image.PixelWriter;
import javafx.scene.image.WritableImage;
import javafx.scene.paint.Color;
import org.datavec.audio.Wave;
import org.datavec.audio.extension.*;

import java.io.InputStream;

public class Controller {
    public ImageView imgDisplay;

    public void loadMusic(ActionEvent actionEvent) {
        InputStream is = getClass().getResourceAsStream("/sounds/oxp.wav");
        Wave wave = new Wave(is);
        Spectrogram sptr = new Spectrogram(wave);

        double[][] spData = sptr.getNormalizedSpectrogramData();
        WritableImage resImg = new WritableImage(spData.length,spData[0].length);
        PixelWriter pxWr = resImg.getPixelWriter();

        int x = 0, y = 0;
        for(double[] col : spData) /* or row?! */
        {
            y = 0;
            for(double item : col)
            {
                resImg.getPixelWriter().setColor(x,y, Color.rgb((int)(item * 255),(int)(item * 255),(int)(item * 255)));
                y++;
            }
            x++;
        }

        System.out.println("Done! Image size is: " + x + "," + y);
        imgDisplay.setFitWidth(x);
        imgDisplay.setFitHeight(y);
        imgDisplay.setImage(resImg);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52425268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档