Skip to content

Commit

Permalink
remove microphone_as_stream
Browse files Browse the repository at this point in the history
  • Loading branch information
trevyn committed Jul 29, 2024
1 parent 23ead05 commit 765f3c5
Showing 1 changed file with 0 additions and 98 deletions.
98 changes: 0 additions & 98 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -676,104 +676,6 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
Ok(())
}

fn microphone_as_stream() -> Receiver<Result<Bytes, RecvError>> {
let (sync_tx, sync_rx) = crossbeam::channel::unbounded();
let (mut async_tx, async_rx) = mpsc::channel(1);

thread::spawn(move || {
let host = cpal::default_host();
let device = host.default_input_device().unwrap();

let config = device.supported_input_configs().unwrap();
for config in config {
dbg!(&config);
}

let config = device.default_input_config().unwrap();

dbg!(&config);

let num_channels = config.channels() as usize;

let stream = match config.sample_format() {
cpal::SampleFormat::F32 => device
.build_input_stream(
&config.into(),
move |data: &[f32], _: &_| {
let mut bytes =
BytesMut::with_capacity((data.len() * std::mem::size_of::<i16>()) / num_channels);
for sample in data.iter().step_by(num_channels) {
// if *sample > 0.5 {
// dbg!(sample);
// }
bytes.put_i16_le(sample.to_sample::<i16>());
}
sync_tx.send(bytes.freeze()).ok();
},
|_| panic!(),
None,
)
.unwrap(),
// cpal::SampleFormat::I16 => device
// .build_input_stream(
// &config.into(),
// move |data: &[i16], _: &_| {
// let mut bytes = BytesMut::with_capacity(data.len() * 2);
// for sample in data {
// bytes.put_i16_le(*sample);
// }
// sync_tx.send(bytes.freeze()).unwrap();
// },
// |_| panic!(),
// None,
// )
// .unwrap(),
// cpal::SampleFormat::U16 => device
// .build_input_stream(
// &config.into(),
// move |data: &[u16], _: &_| {
// let mut bytes = BytesMut::with_capacity(data.len() * 2);
// for sample in data {
// bytes.put_i16_le(sample.to_sample::<i16>());
// }
// sync_tx.send(bytes.freeze()).unwrap();
// },
// |_| panic!(),
// None,
// )
// .unwrap(),
_ => panic!("unsupported sample format"),
};

stream.play().unwrap();

loop {
thread::park();
}
});

tokio::spawn(async move {
let mut buffer = Vec::with_capacity(150000);
loop {
let data = sync_rx.recv();
if let Ok(data) = &data {
buffer.extend(data.clone().to_vec());
if buffer.len() > 100000 {
let moved_buffer = buffer;
buffer = Vec::with_capacity(150000);
tokio::task::spawn_blocking(|| {
SampleData { rowid: None, record_ms: now_ms(), sample_data: moved_buffer }.insert().unwrap();
});
}
}

async_tx.send(data).await.unwrap();
}
});

async_rx
}

pub(crate) async fn run_openai(
model: &str,
tripwire: Tripwire,
Expand Down

0 comments on commit 765f3c5

Please sign in to comment.