gpt4 book ai didi

audio - 使用 FFMPEG 将 ID 变成独特的声音

转载 作者:行者123 更新时间:2023-12-03 00:36:51 26 4
gpt4 key购买 nike

我想使用 FFMPEG 将我的 UUID 变成独特的声音,但我不确定如何做到这一点。

所以现在我的 UUID 看起来像这样:'1e859915-bcdf-4862-8af2-bb43f04e2158'

就像 UUID 是唯一的一样,我想让它们都变成唯一的 1-2 秒音频文件。 FFMPEG 可以做到这一点还是有不同的路线? FFMPEG 中的 SINE 函数会做什么还是其他什么?

最佳答案

这里尝试将 GUID 中的每个半字节转换为 A4-C6 范围内的音调。 .

它在 WAVE 中输出无符号 8 位 PCM , 没有 ffmpeg必需的。该代码仅用于说明目的,请随意添加适当的验证等。

#include <stdio.h>
#include <inttypes.h>
#include <math.h>

int main(void) {
FILE* out;
int duration = 2; // [s]
int32_t rate = 44100; // [Hz]
uint8_t guid[] = {0x1e, 0x85, 0x99, 0x15, 0xbc, 0xdf, 0x48, 0x62, 0x8a, 0xf2, 0xbb, 0x43, 0xf0, 0x4e, 0x21, 0x58};
int32_t samples_per_nibble = (float) duration / 32 * rate;
int32_t total_samples = samples_per_nibble * 32;
int16_t c16;
int32_t c32;

if ((out = fopen("test.wav", "wb")) == NULL) {
return 1;
}

// WAV header
// ChunkID
fputs("RIFF", out);
// ChunkSize
c32 = 36 + total_samples;
fwrite(&c32, 4, 1, out);
// Format
fputs("WAVE", out);
// Subchunk1ID
fputs("fmt ", out);
// Subchunk1Size
c32 = 16;
fwrite(&c32, 4, 1, out);
// AudioFormat
c16 = 1;
fwrite(&c16, 2, 1, out);
// NumChannels
c16 = 1;
fwrite(&c16, 2, 1, out);
// SampleRate
c32 = rate;
fwrite(&c32, 4, 1, out);
// ByteRate
c32 = rate;
fwrite(&c32, 4, 1, out);
// BlockAlign
c16 = 1;
fwrite(&c16, 2, 1, out);
// BitsPerSample
c16 = 8;
fwrite(&c16, 2, 1, out);
// Subchunk2ID
fputs("data", out);
// Subchunk2Size
c32 = total_samples;
fwrite(&c32, 4, 1, out);

// Data
for (int b = 0; b < 16; b++) {
// for each byte in the GUID
for (int n = 0; n < 2; n++) {
// for each nibble
uint8_t nibble = (n ? guid[b] >> 4 : guid[b]) & 0x0f;
// go nibble steps above A4
float frequency = 440.0 * pow(1.059463094359, nibble);
// write the samples
for (int s = 0; s < samples_per_nibble; s++) {
int sample = (sin(frequency * 2 * M_PI * s / rate) + 1) * 0.5 * 255;
fputc(sample, out);
}
}
}

fclose(out);
return 0;
}

关于audio - 使用 FFMPEG 将 ID 变成独特的声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40305236/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com