Добавить кнопку для транскрипции в форму DjangoPython

Программы на Python
Ответить
Anonymous
 Добавить кнопку для транскрипции в форму Django

Сообщение Anonymous »

Я создаю веб-сайт и имею представления с помощью форм Django. Я хочу добавить кнопку транскрипции в каждое поле формы Django

Код: Выделить всё

class PostForm(StylishForm):
class Meta:
model = Post
fields = ["title", "body", "upload"]
widgets = {
"owner": forms.HiddenInput(),
}
и предоставить пользователю возможность либо заполнить форму, введя текст, либо нажав кнопку для расшифровки, а затем заполнить поле.

Код: Выделить всё

# add new
def add(request):
if request.method == "POST":
form = PostForm(request.POST, request.FILES)
if form.is_valid():
post = form.save(commit=False)
post.owner = request.user
post.save()
return HttpResponseRedirect(reverse("view_posts"))
else:
form = PostForm()
return render(
request,
"posts/index.html",
{
"form": form,
},
)
Я подготовил функцию для использования API шепота для транскрипции.

Код: Выделить всё

def record_audio(request):
RATE = 16000
CHUNK = 1024
recordings = os.path.join(settings.MEDIA_ROOT, 'recordings')
# Ensure the folder exists
if not os.path.exists(recordings):
os.makedirs('recordings')

# Define the path to save the audio file
file_path = os.path.join(recordings, 'output.wav')

# def callback(data_input, frame_count, time_info, status):
#     wav_file.writeframes(data_input)
#     return None, pyaudio.paContinue

with wave.open(file_path, "wb") as wav_file:
wav_file.setnchannels(1)  # Mono channel
wav_file.setsampwidth(2)  # 16-bit samples
wav_file.setframerate(16000)  # 16kHz sample rate

audio = pyaudio.PyAudio()
stream = audio.open(
format=pyaudio.paInt16,
channels=1,
rate=RATE,
input=True,
frames_per_buffer=CHUNK,
)

for _ in range(0, RATE // CHUNK):
wav_file.writeframes(stream.read(CHUNK))
stream.stop_stream()
stream.close()
audio.terminate()

audio_file= open(file_path, "rb")
transcription = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file
)
print(transcription.text)
return HttpResponseRedirect(reverse("view_posts"))
Но я не могу придумать, как отправить текст в поле формы.
Мой html-шаблон выглядит так:

Код: Выделить всё

         tabindex="0">

{% csrf_token %}
{% for field in post_form %}

{{ field.label }}
{{ form.media }}

{{ field }}

{% endfor %}
Save


Моя проблема. Я не могу придумать, как использовать текст из транскрипции и выборочно заполнять поля формы для переключения между обоими методами. Я пытался найти примеры в Интернете, но не смог найти ни одного ресурса.

Подробнее здесь: https://stackoverflow.com/questions/792 ... jango-form
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»