去掉部分console
This commit is contained in:
@@ -152,7 +152,7 @@ export const useAudioSpeak = (config = {}) => {
|
|||||||
segments.push(sentence);
|
segments.push(sentence);
|
||||||
} else {
|
} else {
|
||||||
// 句子超长,需要分割
|
// 句子超长,需要分割
|
||||||
console.log('检测到超长句子,需要分割:', sentence);
|
// console.log('检测到超长句子,需要分割:', sentence);
|
||||||
|
|
||||||
let currentPos = 0;
|
let currentPos = 0;
|
||||||
const sentenceLength = sentence.length;
|
const sentenceLength = sentence.length;
|
||||||
@@ -247,7 +247,7 @@ export const useAudioSpeak = (config = {}) => {
|
|||||||
*/
|
*/
|
||||||
const _fetchAudioWithRetry = async (text, retries = 0) => {
|
const _fetchAudioWithRetry = async (text, retries = 0) => {
|
||||||
try {
|
try {
|
||||||
console.log(`📶正在请求音频: "${text}"`);
|
// console.log(`📶正在请求音频: "${text}"`);
|
||||||
|
|
||||||
let Authorization = '';
|
let Authorization = '';
|
||||||
if (useUserStore().token) {
|
if (useUserStore().token) {
|
||||||
@@ -272,14 +272,14 @@ export const useAudioSpeak = (config = {}) => {
|
|||||||
throw new Error('音频数据太小或无效');
|
throw new Error('音频数据太小或无效');
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(`音频获取成功,大小: ${audioBlob.size} 字节`);
|
// console.log(`音频获取成功,大小: ${audioBlob.size} 字节`);
|
||||||
|
|
||||||
// 创建Blob URL
|
// 创建Blob URL
|
||||||
return URL.createObjectURL(audioBlob);
|
return URL.createObjectURL(audioBlob);
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (retries < maxRetry) {
|
if (retries < maxRetry) {
|
||||||
console.warn(`重试 ${retries + 1} 次,文本: ${text.substring(0, 10)}...`);
|
// console.warn(`重试 ${retries + 1} 次,文本: ${text.substring(0, 10)}...`);
|
||||||
return await _fetchAudioWithRetry(text, retries + 1);
|
return await _fetchAudioWithRetry(text, retries + 1);
|
||||||
}
|
}
|
||||||
throw e;
|
throw e;
|
||||||
@@ -312,7 +312,7 @@ export const useAudioSpeak = (config = {}) => {
|
|||||||
index: textItem.index
|
index: textItem.index
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log(`音频已添加到队列,当前队列长度: ${audioQueue.length}`);
|
// console.log(`音频已添加到队列,当前队列长度: ${audioQueue.length}`);
|
||||||
|
|
||||||
// 如果当前因为没音频卡住了(Loading状态),立即尝试播放下一段
|
// 如果当前因为没音频卡住了(Loading状态),立即尝试播放下一段
|
||||||
if (!audioSource && !isPaused.value && isPlaying) {
|
if (!audioSource && !isPaused.value && isPlaying) {
|
||||||
@@ -334,7 +334,7 @@ export const useAudioSpeak = (config = {}) => {
|
|||||||
const initAudioContext = () => {
|
const initAudioContext = () => {
|
||||||
if (!audioContext || audioContext.state === 'closed') {
|
if (!audioContext || audioContext.state === 'closed') {
|
||||||
audioContext = new (window.AudioContext || window.webkitAudioContext)();
|
audioContext = new (window.AudioContext || window.webkitAudioContext)();
|
||||||
console.log('音频上下文已初始化');
|
// console.log('音频上下文已初始化');
|
||||||
}
|
}
|
||||||
return audioContext;
|
return audioContext;
|
||||||
}
|
}
|
||||||
@@ -355,7 +355,7 @@ export const useAudioSpeak = (config = {}) => {
|
|||||||
if (itemIndex === -1) {
|
if (itemIndex === -1) {
|
||||||
if (textQueue.length === 0 && !isFetching) {
|
if (textQueue.length === 0 && !isFetching) {
|
||||||
// 彻底播完了
|
// 彻底播完了
|
||||||
console.log('所有音频播放完成');
|
// console.log('所有音频播放完成');
|
||||||
stopAudio();
|
stopAudio();
|
||||||
_updateState({ isPlaying: false, msg: '播放结束' });
|
_updateState({ isPlaying: false, msg: '播放结束' });
|
||||||
} else {
|
} else {
|
||||||
@@ -427,7 +427,7 @@ export const useAudioSpeak = (config = {}) => {
|
|||||||
audioSource.connect(audioContext.destination);
|
audioSource.connect(audioContext.destination);
|
||||||
|
|
||||||
audioSource.onended = () => {
|
audioSource.onended = () => {
|
||||||
console.log(`第${index + 1}个片段播放完成`);
|
// console.log(`第${index + 1}个片段播放完成`);
|
||||||
audioSource = null;
|
audioSource = null;
|
||||||
|
|
||||||
// 播放下一段
|
// 播放下一段
|
||||||
@@ -495,7 +495,7 @@ export const useAudioSpeak = (config = {}) => {
|
|||||||
* 核心入口:开始播放长文本
|
* 核心入口:开始播放长文本
|
||||||
*/
|
*/
|
||||||
const speak = async (text) => {
|
const speak = async (text) => {
|
||||||
console.log('开始新的语音播报');
|
// console.log('开始新的语音播报');
|
||||||
|
|
||||||
|
|
||||||
cleanup();
|
cleanup();
|
||||||
@@ -504,7 +504,7 @@ export const useAudioSpeak = (config = {}) => {
|
|||||||
|
|
||||||
|
|
||||||
text = extractSpeechText(text);
|
text = extractSpeechText(text);
|
||||||
console.log('开始语音播报:', text);
|
// console.log('开始语音播报:', text);
|
||||||
|
|
||||||
// 重置状态
|
// 重置状态
|
||||||
isPlaying = true;
|
isPlaying = true;
|
||||||
@@ -529,7 +529,7 @@ export const useAudioSpeak = (config = {}) => {
|
|||||||
|
|
||||||
// 1. 智能切割文本
|
// 1. 智能切割文本
|
||||||
const segments = _smartSplit(text);
|
const segments = _smartSplit(text);
|
||||||
console.log('文本分段结果:', segments);
|
// console.log('文本分段结果:', segments);
|
||||||
|
|
||||||
if (segments.length === 0) {
|
if (segments.length === 0) {
|
||||||
console.warn('没有有效的文本可以播报');
|
console.warn('没有有效的文本可以播报');
|
||||||
@@ -599,7 +599,7 @@ export const useAudioSpeak = (config = {}) => {
|
|||||||
* 停止播放
|
* 停止播放
|
||||||
*/
|
*/
|
||||||
const stopAudio = () => {
|
const stopAudio = () => {
|
||||||
console.log('停止音频播放');
|
// console.log('停止音频播放');
|
||||||
|
|
||||||
isPlaying = false;
|
isPlaying = false;
|
||||||
isPaused.value = false;
|
isPaused.value = false;
|
||||||
@@ -611,7 +611,7 @@ export const useAudioSpeak = (config = {}) => {
|
|||||||
if (audioSource) {
|
if (audioSource) {
|
||||||
try {
|
try {
|
||||||
audioSource.stop();
|
audioSource.stop();
|
||||||
console.log('音频源已停止');
|
// console.log('音频源已停止');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.warn('停止音频源失败:', e);
|
console.warn('停止音频源失败:', e);
|
||||||
}
|
}
|
||||||
@@ -650,16 +650,16 @@ export const useAudioSpeak = (config = {}) => {
|
|||||||
* 清理资源
|
* 清理资源
|
||||||
*/
|
*/
|
||||||
const cleanup = () => {
|
const cleanup = () => {
|
||||||
console.log('开始清理资源');
|
// console.log('开始清理资源');
|
||||||
stopAudio();
|
stopAudio();
|
||||||
|
|
||||||
if (audioContext && audioContext.state !== 'closed') {
|
if (audioContext && audioContext.state !== 'closed') {
|
||||||
audioContext.close();
|
audioContext.close();
|
||||||
console.log('音频上下文已关闭');
|
// console.log('音频上下文已关闭');
|
||||||
}
|
}
|
||||||
|
|
||||||
audioContext = null;
|
audioContext = null;
|
||||||
console.log('资源清理完成');
|
// console.log('资源清理完成');
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -287,7 +287,7 @@ export function useRealtimeRecorderOnce() {
|
|||||||
source.connect(processor);
|
source.connect(processor);
|
||||||
processor.connect(audioContext.destination);
|
processor.connect(audioContext.destination);
|
||||||
|
|
||||||
console.log('H5 16kHz WAV录音已启动');
|
// console.log('H5 16kHz WAV录音已启动');
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('H5录音启动失败:', err);
|
console.error('H5录音启动失败:', err);
|
||||||
@@ -336,7 +336,7 @@ export function useRealtimeRecorderOnce() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
recorderManager.onStart(() => {
|
recorderManager.onStart(() => {
|
||||||
console.log('APP 16kHz WAV录音已开始');
|
// console.log('APP 16kHz WAV录音已开始');
|
||||||
});
|
});
|
||||||
|
|
||||||
recorderManager.onError((err) => {
|
recorderManager.onError((err) => {
|
||||||
@@ -373,7 +373,7 @@ export function useRealtimeRecorderOnce() {
|
|||||||
const cancelRecording = () => {
|
const cancelRecording = () => {
|
||||||
if (!isRecording.value) return;
|
if (!isRecording.value) return;
|
||||||
|
|
||||||
console.log('取消录音 - 丢弃结果');
|
// console.log('取消录音 - 丢弃结果');
|
||||||
|
|
||||||
// 1. 停止硬件录音
|
// 1. 停止硬件录音
|
||||||
stopHardwareResource();
|
stopHardwareResource();
|
||||||
@@ -506,7 +506,7 @@ export function useRealtimeRecorderOnce() {
|
|||||||
const wavBuffer = encodeWAV(mergedSamples, 16000, 1, 16);
|
const wavBuffer = encodeWAV(mergedSamples, 16000, 1, 16);
|
||||||
audioBlob = new Blob([wavBuffer], { type: 'audio/wav' });
|
audioBlob = new Blob([wavBuffer], { type: 'audio/wav' });
|
||||||
|
|
||||||
console.log(`H5生成WAV文件: ${audioBlob.size} bytes, 时长: ${mergedSamples.length / 16000}秒`);
|
// console.log(`H5生成WAV文件: ${audioBlob.size} bytes, 时长: ${mergedSamples.length / 16000}秒`);
|
||||||
}
|
}
|
||||||
// #endif
|
// #endif
|
||||||
|
|
||||||
@@ -534,7 +534,7 @@ export function useRealtimeRecorderOnce() {
|
|||||||
const wavBuffer = encodeWAV(floatSamples, 16000, 1, 16);
|
const wavBuffer = encodeWAV(floatSamples, 16000, 1, 16);
|
||||||
audioBlob = new Blob([wavBuffer], { type: 'audio/wav' });
|
audioBlob = new Blob([wavBuffer], { type: 'audio/wav' });
|
||||||
|
|
||||||
console.log(`APP生成WAV文件: ${audioBlob.size} bytes, 时长: ${floatSamples.length / 16000}秒`);
|
// console.log(`APP生成WAV文件: ${audioBlob.size} bytes, 时长: ${floatSamples.length / 16000}秒`);
|
||||||
}
|
}
|
||||||
// #endif
|
// #endif
|
||||||
|
|
||||||
@@ -576,7 +576,7 @@ export function useRealtimeRecorderOnce() {
|
|||||||
a.click();
|
a.click();
|
||||||
document.body.removeChild(a);
|
document.body.removeChild(a);
|
||||||
URL.revokeObjectURL(url);
|
URL.revokeObjectURL(url);
|
||||||
console.log('WAV文件已保存用于调试');
|
// console.log('WAV文件已保存用于调试');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -365,7 +365,7 @@ onMounted(async () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
onUnmounted(()=>{
|
onUnmounted(()=>{
|
||||||
console.log('清理TTS资源')
|
// console.log('清理TTS资源')
|
||||||
cleanup()
|
cleanup()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user