如何使用 librosa 将男声转换为女声?
我尝试将男声转换为女声。我首先用librosa读取wav文件,然后用STFT处理音频时间序列,我希望我可以调整频谱(增加低频部分)以达到目标。
import matplotlib
matplotlib.use('TkAgg')
import librosa.display
y, sr = librosa.load("/Users/wu4mac/PycharmProjects/SpeechRecognition/weather.wav")
a = librosa.stft(y)
length = len(a)
r_a = a[10:length-10]
b = librosa.istft(r_a)
librosa.output.write_wav("stft.wav", b, sr)
Run Code Online (Sandbox Code Playgroud)
我希望能够将男声转换为女声,但这似乎只能实现为一种奇怪的声音。
我正在开发音乐应用程序,需要为我的文件生成音频频谱。像这个:
所以我尝试使用这样的音频波形:
audiowaveform -i music.mp3 --pixels-per-second 1 -o out.dat
Run Code Online (Sandbox Code Playgroud)
这给了我以下结果[正确的结果]:[前 10 个单词是元数据]
0000000 0001 0000 0000 0000 bb80 0000 bb80 0000
0000020 00f9 0000 df3e 1fa2 e22c 1ef3 e0bb 1e5a
0000040 e099 1e88 dfcf 1c33 e29f 1d4c e055 1f80
0000060 df63 1e3a e1b4 1f31 e271 1d81 e0e5 1b1c
0000100 e06d 1be4 dee2 1cb0 e118 1da1 e026 1dea
0000120 e055 1dac df9b 1dbf e0c3 2063 ded4 21b2
0000140 dec9 1f8d de5b 20c8 e02d 216a dd7e 21af
0000160 dea1 20ac de6c …Run Code Online (Sandbox Code Playgroud) 我正在为8位Atmega32开发频谱分析仪,输出到LCD显示器上.最大采样频率为40kHz,最大频率为20kHz,符合fs> 2B.目前,我正在内部生成信号,然后将FFT应用于此信号并在LCD上查看频谱.
请注意,这是用伪代码编写的:
#define SIG_N 128 //Number of samples in signal buffer
#define FFT_N 64 //2*Output bins
uint_8 signal[SIG_N];
uint_8 spektrum[FFT_N];
for (int i = 0; i < SIG_N; i++){
signal[i] = 255*sin(2*3.14*f*i / SIG_N);
}
computeFFT(signal,spektrum,FFT_N); //arbitrary method computes signal outputs spektrum
Run Code Online (Sandbox Code Playgroud)
输出频谱目前具有FFT_N/2 = 32个频段,每个频段代表1Hz.因此,我的频谱目前代表的最高频率(我已经测试过) - 32Hz.如何增加这些箱的"频率宽度",使每个箱子代表625Hz?请记住,由于存在内存限制,我无法将FFT_N的大小增加到64~128以上.
我希望能够生成某种存储音频文件音量级别的文件.我对此非常灵活,但一个例子是每隔一秒显示音量的csv.我不需要这个数字那么精确.
你对如何处理这个问题有什么建议吗?我会很感激.
我将使用光谱能量和光谱熵作为基于窗口的时间序列数据的特征。但是,我对在线使用的公式有些困惑,尤其是关于特殊熵。
我使用了 Matlab 中的熵,但这不适用于时间序列数据。它只是给我所有的零。http://www.mathworks.nl/help/images/ref/entropy.html 此版本的测试窗口熵结果 = 0
然后我用了这个版本。 http://www.mathworks.com/matlabcentral/fileexchange/28692-entropy 测试窗口此版本的熵结果 = 4.3219
在将 imhist 应用于数据窗口(p = imhist(aw1(:));)后,我还尝试了 -sum(p.*log2(p))。这是从在线帮助中得到的。
此版本的测试窗口熵结果 = 0.0369
他们都报告了不同的值。
对于光谱能量,我使用的是 fft 系数的平方和。sum(abs(fft(data-window)).^2)
任何机构都可以给我任何正确版本的建议吗?
我需要在一个包含大约 40 个文件的小型数据库中找到一个类似的 wav 文件,长度从 5 秒到 7 秒不等。
这些 wav 文件是电话服务提供商在您拨打电话时提供给您的记录。
例子:
我的针有 1 或 2 秒长。
所有的 wav 都是pcm 编码的 16 位 8000hz 单声道。
我尝试使用Aurio.AudioFingerPrint没有成功
https://github.com/protyposis/Aurio
// Setup the sources
var audioTrack1 = new AudioTrack(new FileInfo("Full5secs.wav"));
var audioTrack2 = new AudioTrack(new FileInfo("Part2Secs.wav"));
// Setup the fingerprint generator
var defaultProfile = FingerprintGenerator.GetProfiles()[0];
var generator = new FingerprintGenerator(defaultProfile);
// Create a fingerprint store
var store = new FingerprintStore(defaultProfile);
// Setup the generator event listener (a …Run Code Online (Sandbox Code Playgroud) 我对 Redshift 服务还很陌生,并且对何时使用或将哪些数据放入 Spectrum 感到非常困惑。
假设我在 Redshift 上有星型模式数据仓库,我应该将事实表或暗表放入 Spectrum(来自 s3 的外部表)中以进行存储优化吗?或者通常数据仓库具有不同的层,例如:登陆、暂存或数据仓库。我们是否应该将其他层的数据放入 Spectrum,只将星型模式数据放入 Redshift。
由于 S3 中的数据仅被附加,我们是否需要安装 apachi hudi 或 delta Lake 才能与 Redshift Spectrum 配合使用?
我找到了一篇 aws 文章:https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/,如下所述,但仍然不清楚。
一些好的用例如下:
- 数据量大但访问频率较低的数据 大量扫描和
- 聚合密集型查询 可以使用的选择性查询
- 分区剪枝和谓词下推,因此输出相当小
任何人都可以提供现实世界的例子来解释吗?谢谢
spectrum amazon-web-services amazon-redshift amazon-redshift-spectrum delta-lake
我有一些音频文件,我想使用 PYTHON (librosa 库)绘制音频文件的平均频谱,例如“audacity”软件。我可以看到他们正在绘制整个音频的平均频率与幅度图。
之后,我想应用 CNN 对两类样本进行分类。寻找建议。
谢谢。
假设我有三个复杂波形(由许多正弦波组成):A,B和C.每个波形具有以下频率:分别为550,600,700 Hz.
现在我添加三个信号,即进行叠加以获得信号D.
我的目标是分别取回三个原始信号A,B和C.
我已经绘制了傅立叶光谱,在那里我获得了550,660和700 Hz的主峰.还有其他较小的山峰.我如何知道哪些波峰与哪些波形相关联,以便重新创建原始波形A,B和C?谢谢.
据我所知,频谱的IFFT幅度部分是偶对称的,而相位部分是奇对称的应该是真实的.
让我们考虑这个例子:
signal_spectrum = [1 2+i 3+2*i 4+8*i 5 4-8*i 3-2*i 2-i 1];
Run Code Online (Sandbox Code Playgroud)
很明显,这个光谱符合我上面列出的两个条件.当我使用Matlab执行IFFT时,我获得:
signal= ifft(signal_spectrum) =
2.7778
0.8003 - 0.2913i
-1.2861 + 1.0792i
0.5218 - 0.9038i
-0.0812 + 0.4604i
0.0976 + 0.5536i
-0.6329 - 1.0962i
1.3343 + 1.1196i
-2.5316 - 0.9214i
Run Code Online (Sandbox Code Playgroud)
获得的信号是复值的.为什么?有什么问题?
我想更好地了解FFTW的API.FFTW是用于在一个或多个维度上计算离散傅里叶变换(DFT)的库.
现在,假设我有一个正弦波形x = 30*sin(2*M_PI*f*i*T),其中f是频率(例如f = 1000Hz).如果我使用FFTW的功能来分析我的波形,我希望得到一个频率f = 1000Hz.
我的问题是如何使用FFTW库在c ++中执行此操作?任何帮助,将不胜感激.
我有两个浮点值列表,一个表示时间,另一个表示从示波器获取的电压值(我假设)。我必须绘制一个振幅频谱图,但是我不确定我需要使用什么功能以及需要给它提供什么参数,我尝试了fft(u),但是没有用。
感谢您的帮助,如果需要更多信息,请告诉我。
我想在Quill的颜色选项下拉框中添加一个十六进制/ rgb / rgba值的文本框,以便我的用户可以输入自己喜欢的颜色值,而不必局限于Quill.js最初提供的调色板
我尝试将Spectrum(https://bgrins.github.io/spectrum/)与Quill结合使用,但尝试失败,无法设置/获取颜色值。