mirror of
https://github.com/modelscope/FunASR
synced 2025-09-15 14:48:36 +08:00
commit
d1cde93914
@ -237,7 +237,7 @@ bool Audio::loadpcmwav(const char* buf, int nBufLen)
|
|||||||
|
|
||||||
size_t nOffset = 0;
|
size_t nOffset = 0;
|
||||||
|
|
||||||
#define WAV_HEADER_SIZE 44
|
|
||||||
|
|
||||||
speech_len = nBufLen / 2;
|
speech_len = nBufLen / 2;
|
||||||
speech_align_len = (int)(ceil((float)speech_len / align_size) * align_size);
|
speech_align_len = (int)(ceil((float)speech_len / align_size) * align_size);
|
||||||
@ -263,7 +263,8 @@ bool Audio::loadpcmwav(const char* buf, int nBufLen)
|
|||||||
speech_data[i] = (float)speech_buff[i] / scale;
|
speech_data[i] = (float)speech_buff[i] / scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AudioFrame* frame = new AudioFrame(speech_len);
|
||||||
|
frame_queue.push(frame);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,8 +26,9 @@ extern "C" {
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
Audio audio(1);
|
Audio audio(1);
|
||||||
audio.loadwav(szBuf,nLen);
|
if (!audio.loadwav(szBuf, nLen))
|
||||||
audio.split();
|
return nullptr;
|
||||||
|
//audio.split();
|
||||||
|
|
||||||
float* buff;
|
float* buff;
|
||||||
int len;
|
int len;
|
||||||
@ -58,8 +59,9 @@ extern "C" {
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
Audio audio(1);
|
Audio audio(1);
|
||||||
audio.loadpcmwav(szBuf, nLen);
|
if (!audio.loadpcmwav(szBuf, nLen))
|
||||||
audio.split();
|
return nullptr;
|
||||||
|
//audio.split();
|
||||||
|
|
||||||
float* buff;
|
float* buff;
|
||||||
int len;
|
int len;
|
||||||
@ -91,8 +93,9 @@ extern "C" {
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
Audio audio(1);
|
Audio audio(1);
|
||||||
audio.loadpcmwav(szFileName);
|
if (!audio.loadpcmwav(szFileName))
|
||||||
audio.split();
|
return nullptr;
|
||||||
|
//audio.split();
|
||||||
|
|
||||||
float* buff;
|
float* buff;
|
||||||
int len;
|
int len;
|
||||||
@ -125,7 +128,7 @@ extern "C" {
|
|||||||
Audio audio(1);
|
Audio audio(1);
|
||||||
if(!audio.loadwav(szWavfile))
|
if(!audio.loadwav(szWavfile))
|
||||||
return nullptr;
|
return nullptr;
|
||||||
audio.split();
|
//audio.split();
|
||||||
|
|
||||||
float* buff;
|
float* buff;
|
||||||
int len;
|
int len;
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
#include "librapidasrapi.h"
|
#include "librapidasrapi.h"
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
@ -40,10 +40,13 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
|
|
||||||
gettimeofday(&start, NULL);
|
gettimeofday(&start, NULL);
|
||||||
|
|
||||||
RPASR_RESULT Result=RapidAsrRecogPCMFile(AsrHanlde, argv[2], RASR_NONE, NULL);
|
|
||||||
gettimeofday(&end, NULL);
|
|
||||||
float snippet_time = 0.0f;
|
float snippet_time = 0.0f;
|
||||||
|
|
||||||
|
|
||||||
|
RPASR_RESULT Result=RapidAsrRecogFile(AsrHanlde, argv[2], RASR_NONE, NULL);
|
||||||
|
|
||||||
|
gettimeofday(&end, NULL);
|
||||||
|
|
||||||
if (Result)
|
if (Result)
|
||||||
{
|
{
|
||||||
string msg = RapidAsrGetResult(Result, 0);
|
string msg = RapidAsrGetResult(Result, 0);
|
||||||
@ -56,11 +59,51 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cout <<("no return data!");
|
cout <<"no return data!";
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("Audio length %lfs.\n", (double)snippet_time);
|
|
||||||
|
//char* buff = nullptr;
|
||||||
|
//int len = 0;
|
||||||
|
//ifstream ifs(argv[2], std::ios::binary | std::ios::in);
|
||||||
|
//if (ifs.is_open())
|
||||||
|
//{
|
||||||
|
// ifs.seekg(0, std::ios::end);
|
||||||
|
// len = ifs.tellg();
|
||||||
|
// ifs.seekg(0, std::ios::beg);
|
||||||
|
|
||||||
|
// buff = new char[len];
|
||||||
|
|
||||||
|
// ifs.read(buff, len);
|
||||||
|
|
||||||
|
|
||||||
|
// //RPASR_RESULT Result = RapidAsrRecogPCMFile(AsrHanlde, argv[2], RASR_NONE, NULL);
|
||||||
|
|
||||||
|
// RPASR_RESULT Result=RapidAsrRecogPCMBuffer(AsrHanlde, buff,len, RASR_NONE, NULL);
|
||||||
|
// //RPASR_RESULT Result = RapidAsrRecogPCMFile(AsrHanlde, argv[2], RASR_NONE, NULL);
|
||||||
|
// gettimeofday(&end, NULL);
|
||||||
|
//
|
||||||
|
// if (Result)
|
||||||
|
// {
|
||||||
|
// string msg = RapidAsrGetResult(Result, 0);
|
||||||
|
// setbuf(stdout, NULL);
|
||||||
|
// cout << "Result: \"";
|
||||||
|
// cout << msg << endl;
|
||||||
|
// cout << "\"." << endl;
|
||||||
|
// snippet_time = RapidAsrGetRetSnippetTime(Result);
|
||||||
|
// RapidAsrFreeResult(Result);
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// cout <<"no return data!";
|
||||||
|
// }
|
||||||
|
|
||||||
|
//
|
||||||
|
//delete[]buff;
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
printf("Audio length %lfs.\n", (double)snippet_time);
|
||||||
seconds = (end.tv_sec - start.tv_sec);
|
seconds = (end.tv_sec - start.tv_sec);
|
||||||
long taking_micros = ((seconds * 1000000) + end.tv_usec) - (start.tv_usec);
|
long taking_micros = ((seconds * 1000000) + end.tv_usec) - (start.tv_usec);
|
||||||
printf("Model inference takes %lfs.\n", (double)taking_micros / 1000000);
|
printf("Model inference takes %lfs.\n", (double)taking_micros / 1000000);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user