new_wukong/main.py
2024-07-10 20:45:16 +08:00

53 lines
1.4 KiB
Python

from src import ExecutePipeline
from src import Plugins
from src import EchoEngine
from pathlib import Path
def main():
from plugins.example import MyEngine
plug_conf = Plugins(Path(__file__).resolve().parent)
pipe = ExecutePipeline(
plug_conf.load_engine("asr_engine"),
MyEngine(),
plug_conf.load_engine("chat_ai_engine"),
EchoEngine(),
plug_conf.load_engine("tts_engine"),
)
res = pipe.execute_engines('./tests/offical/sounds/asr_example.wav')
import wave
import io
import pyaudio
# with open('output.wav', 'wb') as f:
# f.write(res)
wf = wave.open(io.BytesIO(res), 'rb')
_audio = pyaudio.PyAudio()
_stream = _audio.open(format=_audio.get_format_from_width(wf.getsampwidth()),
channels=wf.getnchannels(),
rate=wf.getframerate(),
output=True)
data = wf.readframes(1024) # 假定块大小为1024
while data:
_stream.write(data)
data = wf.readframes(1024)
_stream.stop_stream()
_stream.close()
_audio.terminate()
wf.close()
if __name__ == '__main__':
from dotenv import load_dotenv
load_dotenv()
# import importlib
# from pathlib import Path
# pug_path = Path(__file__).resolve().parent / "src/engine"
# import sys
# sys.path.append(str(pug_path))
# importlib.import_module("dashscope",
# str(pug_path))
main()