Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [C++] Programma per la registrazione vocale

    Ciao a tutti.
    Dal mio codice c++, lancio il programma audacity che è un normalissimo< programma per la registrazione vocale. Audacity però è dotato di una sua interfaccia grafica. Mi è stata richiesta una cosa differente.
    Invece che lanciare audacity, arrivati ad un certo punto del codice, vorrei che fosse il mio programma stesso che mi registrasse la voce.
    Mi spiego:
    il mio programma parte, fa quello che deve fare e ad un certo punto arriva il momento della registrazione vocale. Si mette in ascolto, l'utente registra quello che deve registrare, preme invio e il file wav viene salvato.
    Secondo me è una cosa di una difficoltà impressionante contando che sono anche alle prime armi. Ma pazienza...
    è possibile realizzare una cosa del genere?! Qualcuno mi sa aiutare?! Dove posso trovare informazioni utili?!
    Un saluto a tutti

  2. #2
    Si può fare, semplicemente utilizzando una funzione API (se sei in ambiente Windows) come puoi leggere qui: http://www.visual-basic.it/articoli/fddAudio2.htm
    È riferito a VB ma ti serve per capire la funzione.

  3. #3
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Un mio parere è usare le DirectX (DirectSound). Fai pratica anche cn le interfacce ed hai una miriade di effetti sonori che puoi applicare al tuo audio
    Per gli Spartani e Sparta usa spartan Il mio github

  4. #4
    Originariamente inviato da linoma
    Un mio parere è usare le DirectX (DirectSound). Fai pratica anche cn le interfacce ed hai una miriade di effetti sonori che puoi applicare al tuo audio
    Sicuramente è un'ottima soluzione, resta da vedere se, date le conoscenze informatiche dell'utente e dato ciò che vuol realizzare, è conveniente a lui intraprendere questa strada; se il "lavoro" che vuol fare è semplicemente catturare l'input audio e salvarlo in un file, ribadisco la semplicità di mciSendString e affini.


    Ciao

  5. #5
    Si infatti.
    Sono proprio alle prime armi.
    Io devo semplicemente catturare l'audio e salvarlo.
    Sto guardando l'api mcisendstring sul sito di msdn...
    Mah...Sto provando...

  6. #6
    Perfetto, ti posto anche l'ultima parte dell'articolo (http://www.visual-basic.it/articoli/fddAudio3.htm) ribadendoti che, una volta capito il funzionamento di questa API abbastanza estesa, l'implementazione in C++ è banale.


    Ciao

  7. #7
    Sto smacchinando per l'utilizzo di mcisendstring...
    Allora,
    Ho creato un nuovo progetto, ho aggiunto la libreria libwinmm.a, ho aggiunto al nuovo progetto tutto il mio codice sorgente e ho messo nel mio codice la libreria mmsystem.h DOPO aver incluso la libreria windows.h
    Però continua a darmi errori. Cosa manca?!
    Mi crea questo makefile
    # Project: Progetto1
    # Makefile created by Dev-C++ 4.9.9.2

    CPP = g++.exe
    CC = gcc.exe
    WINDRES = windres.exe
    RES =
    OBJ = tesi.o $(RES)
    LINKOBJ = tesi.o $(RES)
    LIBS = -L"C:/Dev-Cpp/lib" -L"C:/cygwin/home"
    INCS = -I"C:/Dev-Cpp/include" -I"C:/cygwin/home"
    CXXINCS = -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include" -I"C:/cygwin/home"
    BIN = tesi.exe
    CXXFLAGS = $(CXXINCS)
    CFLAGS = $(INCS)
    RM = rm -f

    .PHONY: all all-before all-after clean clean-custom

    all: all-before tesi.exe all-after


    clean: clean-custom
    ${RM} $(OBJ) $(BIN)

    $(BIN): $(OBJ)
    $(CPP) $(LINKOBJ) -o "tesi.exe" $(LIBS)

    tesi.o: tesi.cpp
    $(CPP) -c tesi.cpp -o tesi.o $(CXXFLAGS)

    Che cosa sbaglio?!

  8. #8
    Io ho realizzato queste 4 righe

    codice:
    mciSendString("open new Type waveaudio Alias recsound", "", 0, 0);
    mciSendString("record waveaudio", "", 0,0);
    mciSendString("save waveaudio C:\\cygwin\\home\\sample1.wav", "", 0, 0);
    mciSendString("close waveaudio", "", 0, 0);
    La prima dovrebbe aprirmi un file audio
    la seconda dovrebbe registrarlo
    la terza slavarlo
    la quarta chiuderlo
    Però in realtà non fa niente.
    Non capisco dove sbaglio.
    Ho il dubbio che il problema sia record. Non credo sia quello il comando per avviare ua registrazione da microfono. Adesso infatti sto cercando altri comandi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.