1
Ohjelmointi, palvelimet ja muu edistyneempi käyttö / Vs: Mikrofonin syöte c++ -taulukkoon ja kaiuttimelle
« : 18.12.25 - klo:22.37 »
Toisen tekoälyn kirjoittaman ohjelman kanssa onnistui vähän paremmin. Ohjelma tuntuu toimivan, ja nyt pitäisi sitten selvittää, mitä se oikeastaan tekee. Pitäisi päästä käsiksi niihin tallennettuihin ääniarvoihin lukuina.
Mutta alkuperäinen kysymys taitaa olla ratkennut. Kiitoksia lähestymistapavihjeistä
Ohjelma on tässä:
Käännös näin ja ajo
Mutta alkuperäinen kysymys taitaa olla ratkennut. Kiitoksia lähestymistapavihjeistä

Ohjelma on tässä:
Koodia: [Valitse]
#include <iostream>
#include <vector>
#include <alsa/asoundlib.h>
#define RATE 44100
#define CHANNELS 1
#define SECONDS 5
void configure_pcm(snd_pcm_t* handle) {
snd_pcm_hw_params_t* params;
snd_pcm_hw_params_alloca(¶ms);
snd_pcm_hw_params_any(handle, params);
snd_pcm_hw_params_set_access(handle, params, SND_PCM_ACCESS_RW_INTERLEAVED);
snd_pcm_hw_params_set_format(handle, params, SND_PCM_FORMAT_S16_LE);
snd_pcm_hw_params_set_channels(handle, params, CHANNELS);
unsigned int rate = RATE;
snd_pcm_hw_params_set_rate_near(handle, params, &rate, 0);
snd_pcm_hw_params(handle, params);
}
int main() {
snd_pcm_t *capture_handle, *playback_handle;
long total_frames = RATE * SECONDS;
std::vector<int16_t> buffer(total_frames);
// Open capture device (Microphone)
if (snd_pcm_open(&capture_handle, "default", SND_PCM_STREAM_CAPTURE, 0) < 0) return 1;
configure_pcm(capture_handle);
std::cout << "Recording for 5 seconds..." << std::endl;
snd_pcm_readi(capture_handle, buffer.data(), total_frames);
snd_pcm_close(capture_handle);
// Open playback device (Speakers)
if (snd_pcm_open(&playback_handle, "default", SND_PCM_STREAM_PLAYBACK, 0) < 0) return 1;
configure_pcm(playback_handle);
std::cout << "Playing back..." << std::endl;
snd_pcm_writei(playback_handle, buffer.data(), total_frames);
snd_pcm_drain(playback_handle);
snd_pcm_close(playback_handle);
return 0;
}
Käännös näin ja ajo
Koodia: [Valitse]
g++ äänikoe.cpp -o äänikoe -lasound
./äänikoe

