feat: runtime boolean

This commit is contained in:
Dan Chen
2024-03-21 16:59:35 +08:00
parent 5e2d68230b
commit 0c34fd260f
6 changed files with 86 additions and 11 deletions

51
runtime_example.py Normal file
View File

@ -0,0 +1,51 @@
from src.blackbox.audio_to_text import AudioToText
from src.blackbox.text_to_audio import TextToAudio
from runtime.ast.parser import Parser
from runtime.ast.runtime import Runtime
script = """
let hello = true
let text = audio_to_text(audio)
print(hello)
return tts(text)
"""
def version():
return "0.0.1"
def add(a,b):
return a+b
def div(a,b):
return a/b
def minus(a,b):
return a-b
def mul(a,b):
return a*b
if __name__ == "__main__":
f = open("./test_data/testone.wav", "rb")
audio_data = f.read()
f.close()
tts = TextToAudio()
audio_to_text = AudioToText()
# 注入函数
runtime = Runtime(records={
"add": add,
"div": div,
"minus": minus,
"mul": mul,
"audio_to_text": audio_to_text,
"tts": tts,
"version": version,
"print": print
})
# 注入數據
script_output = runtime.run(Parser().parse(script), {
"audio": audio_data
})
f = open("./test_data/runtime_output.mp3", "wb")
f.write(script_output.read())
f.close()