To create this web application, you'll need to have Python and the following libraries installed:

1. Flask
2. google-cloud-speech
3. pymongo
4. pydub

You can install them using pip:

```bash
pip install flask google-cloud-speech pymongo pydub
```

Next, create a new directory for your project and set up your environment variables. You will need to create a Google Cloud account and enable the Speech-to-Text API to get an API key. Save the JSON file containing the API key in your project directory and set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable.

```bash
export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/api_key.json"
```

Now, let's create the main application file, called `app.py`.

```python
from flask import Flask, request, render_template, redirect, url_for
from google.cloud import speech_v1p1beta1 as speech
from pymongo import MongoClient
from pydub import AudioSegment
import os
import io


app = Flask(__name__)
client = MongoClient("mongodb://localhost:27017/")
db = client["audio_transcriptions"]
collection = db["transcriptions"]


@app.route("/", methods=["GET", "POST"])
def index():
    if request.method == "POST":
        audio_file = request.files["file"]
        filename = audio_file.filename
        audio_format = filename.split(".")[-1]
        audio_file.save(filename)

        # Get duration of the audio file
        audio = AudioSegment.from_file(filename)
        duration = len(audio) / 1000

        # Transcribe the audio file
        transcription = transcribe_audio(filename)

        # Store the uploaded file and transcription in MongoDB
        collection.insert_one(
            {
                "filename": filename,
                "duration": duration,
                "format": audio_format,
                "transcription": transcription,
            }
        )

        # Remove the audio file from local storage
        os.remove(filename)

        return redirect(url_for("index"))

    transcriptions = collection.find()
    return render_template("index.html", transcriptions=transcriptions)


def transcribe_audio(file_path):
    client = speech.SpeechClient()

    with io.open(file_path, "rb") as audio_file:
        content = audio_file.read()

    audio = speech.RecognitionAudio(content=content)
    config = speech.RecognitionConfig(
        encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,
        sample_rate_hertz=16000,
        language_code="en-US",
    )

    response = client.recognize(config=config, audio=audio)

    transcription = ""
    for result in response.results:
        transcription += result.alternatives[0].transcript

    return transcription


if __name__ == "__main__":
    app.run(debug=True)
```

Next, create a template called `index.html` inside a folder named `templates`.

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Audio Transcription</title>
</head>
<body>
    <h1>Upload an Audio File</h1>
    <form action="/" method="POST" enctype="multipart/form-data">
        <input type="file" name="file" accept="audio/*" required>
        <button type="submit">Upload and Transcribe</button>
    </form>

    <h2>Transcriptions</h2>
    <table>
        <thead>
            <tr>
                <th>File Name</th>
                <th>Duration (s)</th>
                <th>Format</th>
                <th>Transcription</th>
            </tr>
        </thead>
        <tbody>
            {% for transcription in transcriptions %}
                <tr>
                    <td>{{ transcription.filename }}</td>
                    <td>{{ transcription.duration }}</td>
                    <td>{{ transcription.format }}</td>
                    <td>{{ transcription.transcription }}</td>
                </tr>
            {% endfor %}
        </tbody>
    </table>
</body>
</html>
```

Now, you can run the application using:

```bash
python app.py
```

Visit `http://127.0.0.1:5000/` in your browser to see the web application.

This code creates a Flask web application that allows users to upload audio files and displays their metadata along with the transcriptions. The Google Speech-to-Text API is used to transcribe the audio files, and the results are stored in a MongoDB database for future retrieval.
이 웹 애플리케이션을 만들려면 파이썬과 다음 라이브러리가 설치되어 있어야 합니다:

1. 플라스크
2. 구글-클라우드-스피치
3. 피몽고
4. 피디브

파이프를 사용하여 설치할 수 있습니다:

```bash
pip install flask google-cloud-speech pymongo pydub
```

그런 다음 프로젝트를 위한 새 디렉토리를 만들고 환경 변수를 설정합니다. Google 클라우드 계정을 생성하고 음성 텍스트 변환 API를 활성화하여 API 키를 받아야 합니다. 프로젝트 디렉토리에 API 키가 포함된 JSON 파일을 저장하고 `GOOGLE_APPLICATION_CREDENTIALS` 환경 변수를 설정합니다.

```bash
export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/api_key.json"
```

이제 `app.py`라는 기본 애플리케이션 파일을 만들어 보겠습니다.

```python
from flask import Flask, request, render_template, redirect, url_for
from google.cloud import speech_v1p1beta1 as speech
from pymongo import MongoClient
from pydub import AudioSegment
import os
import io


app = Flask(__name__)
client = MongoClient("mongodb://localhost:27017/")
db = client["audio_transcriptions"]
collection = db["transcriptions"]


@app.route("/", methods=["GET", "POST"])
def index():
    if request.method == "POST":
        audio_file = request.files["file"]
        filename = audio_file.filename
        audio_format = filename.split(".")[-1]
        audio_file.save(filename)

        # Get duration of the audio file
        audio = AudioSegment.from_file(filename)
        duration = len(audio) / 1000

        # Transcribe the audio file
        transcription = transcribe_audio(filename)

        # Store the uploaded file and transcription in MongoDB
        collection.insert_one(
            {
                "filename": filename,
                "duration": duration,
                "format": audio_format,
                "transcription": transcription,
            }
        )

        # Remove the audio file from local storage
        os.remove(filename)

        return redirect(url_for("index"))

    transcriptions = collection.find()
    return render_template("index.html", transcriptions=transcriptions)


def transcribe_audio(file_path):
    client = speech.SpeechClient()

    with io.open(file_path, "rb") as audio_file:
        content = audio_file.read()

    audio = speech.RecognitionAudio(content=content)
    config = speech.RecognitionConfig(
        encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,
        sample_rate_hertz=16000,
        language_code="en-US",
    )

    response = client.recognize(config=config, audio=audio)

    transcription = ""
    for result in response.results:
        transcription += result.alternatives[0].transcript

    return transcription


if __name__ == "__main__":
    app.run(debug=True)
```

그런 다음 '템플릿'이라는 폴더 안에 `index.html`이라는 템플릿을 만듭니다.

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Audio Transcription</title>
</head>
<body>
    <h1>Upload an Audio File</h1>
    <form action="/" method="POST" enctype="multipart/form-data">
        <input type="file" name="file" accept="audio/*" required>
        <button type="submit">Upload and Transcribe</button>
    </form>

    <h2>Transcriptions</h2>
    <table>
        <thead>
            <tr>
                <th>File Name</th>
                <th>Duration (s)</th>
                <th>Format</th>
                <th>Transcription</th>
            </tr>
        </thead>
        <tbody>
            {% for transcription in transcriptions %}
                <tr>
                    <td>{{ transcription.filename }}</td>
                    <td>{{ transcription.duration }}</td>
                    <td>{{ transcription.format }}</td>
                    <td>{{ transcription.transcription }}</td>
                </tr>
            {% endfor %}
        </tbody>
    </table>
</body>
</html>
```

이제 다음을 사용하여 애플리케이션을 실행할 수 있습니다:

```bash
python app.py
```

브라우저에서 `http://127.0.0.1:5000/`을 방문하여 웹 애플리케이션을 확인합니다.

이 코드는 사용자가 오디오 파일을 업로드하고 트랜스크립션과 함께 메타데이터를 표시할 수 있는 Flask 웹 애플리케이션을 생성합니다. Google 음성-텍스트 변환 API는 오디오 파일을 변환하는 데 사용되며, 그 결과는 나중에 검색할 수 있도록 MongoDB 데이터베이스에 저장됩니다.