fix: SenseVoice推理张量类型错误 int64→int32
ONNX Runtime 报错 "Unexpected input data type. Actual: tensor(int64), expected: tensor(int32)"。SenseVoice 模型的 x_length、language、text_norm 三个输入需要 int32 类型而非 int64。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
ecc79aaeb6
commit
32d3a8e986
@ -318,24 +318,24 @@ RecognitionResult SenseVoiceEngine::infer(const std::vector<float>& samples,
|
|||||||
int64_t xShape[] = {1, numFrames, kLFROutputDim};
|
int64_t xShape[] = {1, numFrames, kLFROutputDim};
|
||||||
auto memInfo = Ort::MemoryInfo::CreateCpu(OrtDeviceAllocator, OrtMemTypeCPU);
|
auto memInfo = Ort::MemoryInfo::CreateCpu(OrtDeviceAllocator, OrtMemTypeCPU);
|
||||||
|
|
||||||
int64_t xLengthVal = numFrames;
|
int32_t xLengthVal = numFrames;
|
||||||
int64_t xLengthShape[] = {1};
|
int64_t xLengthShape[] = {1};
|
||||||
|
|
||||||
int langCode = languageToInt(lang);
|
int langCode = languageToInt(lang);
|
||||||
int64_t langVal = langCode;
|
int32_t langVal = langCode;
|
||||||
int64_t langShape[] = {1};
|
int64_t langShape[] = {1};
|
||||||
|
|
||||||
int64_t textNormVal = kTextNormWithITN;
|
int32_t textNormVal = kTextNormWithITN;
|
||||||
int64_t textNormShape[] = {1};
|
int64_t textNormShape[] = {1};
|
||||||
|
|
||||||
std::vector<Ort::Value> inputTensors;
|
std::vector<Ort::Value> inputTensors;
|
||||||
inputTensors.push_back(Ort::Value::CreateTensor<float>(
|
inputTensors.push_back(Ort::Value::CreateTensor<float>(
|
||||||
memInfo, lfrFeatures.data(), lfrFeatures.size(), xShape, 3));
|
memInfo, lfrFeatures.data(), lfrFeatures.size(), xShape, 3));
|
||||||
inputTensors.push_back(Ort::Value::CreateTensor<int64_t>(
|
inputTensors.push_back(Ort::Value::CreateTensor<int32_t>(
|
||||||
memInfo, &xLengthVal, 1, xLengthShape, 1));
|
memInfo, &xLengthVal, 1, xLengthShape, 1));
|
||||||
inputTensors.push_back(Ort::Value::CreateTensor<int64_t>(
|
inputTensors.push_back(Ort::Value::CreateTensor<int32_t>(
|
||||||
memInfo, &langVal, 1, langShape, 1));
|
memInfo, &langVal, 1, langShape, 1));
|
||||||
inputTensors.push_back(Ort::Value::CreateTensor<int64_t>(
|
inputTensors.push_back(Ort::Value::CreateTensor<int32_t>(
|
||||||
memInfo, &textNormVal, 1, textNormShape, 1));
|
memInfo, &textNormVal, 1, textNormShape, 1));
|
||||||
|
|
||||||
// 4. 运行推理
|
// 4. 运行推理
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user