Compare commits

...

3 Commits

2
.gitignore vendored

@ -1,2 +1,4 @@
rnn.raw rnn.raw
temp.raw temp.raw
3-wavs
*.wav

Binary file not shown.

@ -0,0 +1,46 @@
Buffett Partnership Letters 1957 to 1970
www.csinvesting.wordpress.com studying/teaching/investing Page 67
BUFFETT PARTNERSHIP, LTD.
810 KIEWIT PLAZA
OMAHA 31, NEBRASKA
January 18, 1965
Our Performance in 1964
Although we had an overall gain of $4,846,312.37 in 1964, it was not one of our better years as judged by our
fundamental yardstick, the Dow-Jones Industrial Average (hereinafter called the "Dow"). The overall result for
BPL was plus 27.8% compared to an overall plus 18.7% for the Dow. The overall result for limited partners was
plus 22.3%. Both the advantage of 9.1 percentage points on a partnership basis and 3.6 points by the limited
partners were the poorest since 1959, which was a year of roughly comparable gains for the Dow.
Nevertheless, I am not depressed. It was a strong year for the general market, and it is always tougher for us to
outshine the Dow in such a year. We are certain to have years when the Dow gives us a drubbing and, in some
respects, I feel rather fortunate that 1964 wasn't the year. Because of the problems that galloping markets pose
for us, a Dow repeat in 1965 of 1964 results would make it most difficult for us to match its performance, let
alone surpass it by a decent margin.
To bring the record up to date, the following summarizes the year-by-year performance of the Dow, the
performance of the Partnership before allocation to the general partner, and the limited partner's results:
Year Overall Results From
Dow (1)
Partnership Results (2) Limited Partners
Results (3)
1957 -8.4% 10.4% 9.3%
1958 38.5% 40.9% 32.2%
1959 20.0% 25.9% 20.9%
1960 -6.2% 22.8% 18.6%
1961 22.4% 45.9% 35.9%
1962 -7.6% 13.9% 11.9%
1963 20.6% 38.7% 30.5%
1964 18.7% 27.8% 22.3%
(1) Based on yearly changes in the value of the Dow plus dividends that would have been received through
ownership of the Dow during that year. The table includes all complete years of partnership activity.
(2) For 1957-61 consists of combined results of all predecessor limited partnerships operating throughout
the entire year after all expenses, but before distributions to partners or allocations to the general
partner.
(3) For 1957-61 computed on the basis of the preceding column of partnership results allowing for
allocation to the general partner based upon the present partnership agreement, but before monthly
withdrawals by limited partners.
On a cumulative or compounded basis, the results are:
Year Overall Results From
Dow
Partnership Results Limited Partners
Results
1957 -8.4% 10.4% 9.3%
1957 58 26.9% 55.6% 44.5%

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1,100 @@
WARREN E. BUFFETT
5202 Underwood Ave. Omaha, Nebraska
SECOND ANNUAL LETTER TO LIMITED PARTNERS
The General Stock Market Picture in 1957
In last year's letter to partners, I said the following:
My view of the general market level is that it is priced above intrinsic value. This view relates to blue-chip
securities. This view, if accurate, carries with it the possibility of a substantial decline in all stock prices, both
undervalued and otherwise. In any event I think the probability is very slight that current market levels will be
thought of as cheap five years from now. Even a full-scale bear market, however, should not hurt the market
value of our work-outs substantially.
If the general market were to return to an undervalued status our capital might be employed exclusively in
general issues and perhaps some borrowed money would be used in this operation at that time. Conversely, if
the market should go considerably higher our policy will be to reduce our general issues as profits present
themselves and increase the work-out portfolio.
All of the above is not intended to imply that market analysis is foremost in my mind. Primary attention is given
at all times to the detection of substantially undervalued securities.
The past year witnessed a moderate decline in stock prices. I stress the word "moderate" since casual reading of
the press or conversing with those who have had only recent experience with stocks would tend to create an
impression of a much greater decline. Actually, it appears to me that the decline in stock prices has been
considerably less than the decline in corporate earning power under present business conditions. This means that
the public is still very bullish on blue chip stocks and the general economic picture. I make no attempt to
forecast either business or the stock market; the above is simply intended to dispel any notions that stocks have
suffered any drastic decline or that the general market, is at a low level. I still consider the general market to be
priced on the high side based on long term investment value.
Our Activities in 1957
The market decline has created greater opportunity among undervalued situations so that, generally, our
portfolio is heavier in undervalued situations relative to work-outs than it was last year. Perhaps an explanation
of the term "work-out" is in order. A work-out is an investment which is dependent on a specific corporate
action for its profit rather than a general advance in the price of the stock as in the case of undervalued
situations. Work-outs come about through: sales, mergers, liquidations, tenders, etc. In each case, the risk is that
something will upset the applecart and cause the abandonment of the planned action, not that the economic
picture will deteriorate and stocks decline generally. At the end of 1956, we had a ratio of about 70-30 between
general issues and work-outs. Now it is about 85-15.
During the past year we have taken positions in two situations which have reached a size where we may expect
to take some part in corporate decisions. One of these positions accounts for between 10% and 20% of the
portfolio of the various partnerships and the other accounts for about 5%. Both of these will probably take in the
neighborhood of three to five years of work but they presently appear to have potential for a high average annual
rate of return with a minimum of risk. While not in the classification of work-outs, they have very little
dependence on the general action of the stock market. Should the general market have a substantial rise, of
course, I would expect this section of our portfolio to lag behind the action of the market.
Results for 1957
In 1957 the three partnerships which we formed in 1956 did substantially better than the general market. At the
beginning of the year, the Dow-Jones Industrials stood at 499 and at the end of the year it was at 435 for a loss
of 64 points. If one had owned the Averages, he would have received 22 points in dividends reducing the overall
loss to 42 points or 8.470% for the year. This loss is roughly equivalent to what would have been achieved by
investing in most investment funds and, to my knowledge, no investment fund invested in stocks showed a gain
for the year.
All three of the 1956 partnerships showed a gain during the year amounting to about 6.2%, 7.8% and 25% on
yearend 1956 net worth. Naturally a question is created as to the vastly superior performance of the last
partnership, particularly in the mind of the partners of the first two. This performance emphasizes the
importance of luck in the short run, particularly in regard to when funds are received. The third partnership was
started the latest in 1956 when the market was at a lower level and when several securities were particularly
attractive. Because of the availability of funds, large positions were taken in these issues. Whereas the two
partnerships formed earlier were already substantially invested so that they could only take relatively small
positions in these issues.
Basically, all partnerships are invested in the same securities and in approximately the same percentages.
However, particularly during the initial stages, money becomes available at varying times and varying levels of
the market so there is more variation in results than is likely to be the case in later years. Over the years, I will
be quite satisfied with a performance that is 10% per year better than the Averages, so in respect to these three
partnerships, 1957 was a successful and probably better than average, year.
Two partnerships were started during the middle of 1957 and their results for the balance of the year were
roughly the same as the performance of the Averages which were down about 12% for the period since
inception of the 1957 partnerships. Their portfolios are now starting to approximate those of the 1956
partnerships and performance of the entire group should be much more comparable in the future.
Interpretation of results
To some extent our better than average performance in 1957 was due to the fact that it was a generally poor year
for most stocks. Our performance, relatively, is likely to be better in a bear market than in a bull market so that
deductions made from the above results should be tempered by the fact that it was the type of year when we
should have done relatively well. In a year when the general market had a substantial advance I would be well
satisfied to match the advance of the Averages.
I can definitely say that our portfolio represents better value at the end of 1957 than it did at the end of 1956.
This is due to both generally lower prices and the fact that we have had more time to acquire the more
substantially undervalued securities which can only be acquired with patience. Earlier I mentioned our largest
position which comprised 10% to 20% of the assets of the various partnerships. In time I plan to have this
represent 20% of the assets of all partnerships but this cannot be hurried. Obviously during any acquisition
period, our primary interest is to have the stock do nothing or decline rather than advance. Therefore, at any
given time, a fair proportion of our portfolio may be in the sterile stage. This policy, while requiring patience,
should maximize long term profits.
I have tried to cover points which I felt might be of interest and disclose as much of our philosophy as may be
imparted without talking of individual issues. If there are any questions concerning any phase of the operation, I
would welcome hearing from you.

@ -0,0 +1,92 @@
1957 Letter
WARREN E. BUFFETT
5202 Underwood Ave. Omaha, Nebraska
SECOND ANNUAL LETTER TO LIMITED PARTNERS
The General Stock Market Picture in 1957
In last year's letter to partners, I said the following:
My view of the general market level is that it is priced above intrinsic value. This view relates
to blue-chip securities. This view, if accurate, carries with it the possibility of a substantial
decline in all stock prices, both undervalued and otherwise. In any event I think the probability
is very slight that current market levels will be thought of as cheap five years from now. Even a
full-scale bear market, however, should not hurt the market value of our work-outs substantially.
If the general market were to return to an undervalued status our capital might be employed exclusively in
general issues and perhaps some borrowed money would be used in this operation at that time. Conversely, if
the market should go considerably higher our policy will be to reduce our general issues as profits present
themselves and increase the work-out portfolio.
All of the above is not intended to imply that market analysis is foremost in my mind. Primary attention is given
at all times to the detection of substantially undervalued securities.
The past year witnessed a moderate decline in stock prices. I stress the word "moderate" since casual reading of
the press or conversing with those who have had only recent experience with stocks would tend to create an
impression of a much greater decline. Actually, it appears to me that the decline in stock prices has been
considerably less than the decline in corporate earning power under present business conditions. This means that
the public is still very bullish on blue chip stocks and the general economic picture. I make no attempt to
forecast either business or the stock market; the above is simply intended to dispel any notions that stocks have
suffered any drastic decline or that the general market, is at a low level. I still consider the general market to be
priced on the high side based on long term investment value.
Our Activities in 1957
The market decline has created greater opportunity among undervalued situations so that, generally, our
portfolio is heavier in undervalued situations relative to work-outs than it was last year. Perhaps an explanation
of the term "work-out" is in order. A work-out is an investment which is dependent on a specific corporate
action for its profit rather than a general advance in the price of the stock as in the case of undervalued
situations. Work-outs come about through: sales, mergers, liquidations, tenders, etc. In each case, the risk is that
something will upset the applecart and cause the abandonment of the planned action, not that the economic
picture will deteriorate and stocks decline generally. At the end of 1956, we had a ratio of about 70-30 between
general issues and work-outs. Now it is about 85-15.
During the past year we have taken positions in two situations which have reached a size where we may expect
to take some part in corporate decisions. One of these positions accounts for between 10% and 20% of the
portfolio of the various partnerships and the other accounts for about 5%. Both of these will probably take in the
neighborhood of three to five years of work but they presently appear to have potential for a high average annual
rate of return with a minimum of risk. While not in the classification of work-outs, they have very little
1
dependence on the general action of the stock market. Should the general market have a substantial rise, of
course, I would expect this section of our portfolio to lag behind the action of the market.
Results for 1957
In 1957 the three partnerships which we formed in 1956 did substantially better than the general market. At the
beginning of the year, the Dow-Jones Industrials stood at 499 and at the end of the year it was at 435 for a loss
of 64 points. If one had owned the Averages, he would have received 22 points in dividends reducing the overall
loss to 42 points or 8.470% for the year. This loss is roughly equivalent to what would have been achieved by
investing in most investment funds and, to my knowledge, no investment fund invested in stocks showed a gain
for the year.
All three of the 1956 partnerships showed a gain during the year amounting to about 6.2%, 7.8% and 25% on
yearend 1956 net worth. Naturally a question is created as to the vastly superior performance of the last
partnership, particularly in the mind of the partners of the first two. This performance emphasizes the
importance of luck in the short run, particularly in regard to when funds are received. The third partnership was
started the latest in 1956 when the market was at a lower level and when several securities were particularly
attractive. Because of the availability of funds, large positions were taken in these issues. Whereas the two
partnerships formed earlier were already substantially invested so that they could only take relatively small
positions in these issues.
Basically, all partnerships are invested in the same securities and in approximately the same percentages.
However, particularly during the initial stages, money becomes available at varying times and varying levels of
the market so there is more variation in results than is likely to be the case in later years. Over the years, I will
be quite satisfied with a performance that is 10% per year better than the Averages, so in respect to these three
partnerships, 1957 was a successful and probably better than average, year.
Two partnerships were started during the middle of 1957 and their results for the balance of the year were
roughly the same as the performance of the Averages which were down about 12% for the period since
inception of the 1957 partnerships. Their portfolios are now starting to approximate those of the 1956
partnerships and performance of the entire group should be much more comparable in the future.
Interpretation of results
To some extent our better than average performance in 1957 was due to the fact that it was a generally poor year
for most stocks. Our performance, relatively, is likely to be better in a bear market than in a bull market so that
deductions made from the above results should be tempered by the fact that it was the type of year when we
should have done relatively well. In a year when the general market had a substantial advance I would be well
satisfied to match the advance of the Averages.
I can definitely say that our portfolio represents better value at the end of 1957 than it did at the end of 1956.
This is due to both generally lower prices and the fact that we have had more time to acquire the more
substantially undervalued securities which can only be acquired with patience. Earlier I mentioned our largest
position which comprised 10% to 20% of the assets of the various partnerships. In time I plan to have this
represent 20% of the assets of all partnerships but this cannot be hurried. Obviously during any acquisition
period, our primary interest is to have the stock do nothing or decline rather than advance. Therefore, at any
given time, a fair proportion of our portfolio may be in the sterile stage. This policy, while requiring patience,
should maximize long term profits.
2
I have tried to cover points which I felt might be of interest and disclose as much of our philosophy as may be
imparted without talking of individual issues. If there are any questions concerning any phase of the operation, I
would welcome hearing from you.

Binary file not shown.

@ -0,0 +1,63 @@
file 3-wavs/output-000.wav'
file 3-wavs/output-001.wav'
file 3-wavs/output-002.wav'
file 3-wavs/output-003.wav'
file 3-wavs/output-004.wav'
file 3-wavs/output-005.wav'
file 3-wavs/output-006.wav'
file 3-wavs/output-007.wav'
file 3-wavs/output-008.wav'
file 3-wavs/output-009.wav'
file 3-wavs/output-010.wav'
file 3-wavs/output-011.wav'
file 3-wavs/output-012.wav'
file 3-wavs/output-013.wav'
file 3-wavs/output-014.wav'
file 3-wavs/output-015.wav'
file 3-wavs/output-016.wav'
file 3-wavs/output-017.wav'
file 3-wavs/output-018.wav'
file 3-wavs/output-019.wav'
file 3-wavs/output-020.wav'
file 3-wavs/output-021.wav'
file 3-wavs/output-022.wav'
file 3-wavs/output-023.wav'
file 3-wavs/output-024.wav'
file 3-wavs/output-025.wav'
file 3-wavs/output-026.wav'
file 3-wavs/output-027.wav'
file 3-wavs/output-028.wav'
file 3-wavs/output-029.wav'
file 3-wavs/output-030.wav'
file 3-wavs/output-031.wav'
file 3-wavs/output-032.wav'
file 3-wavs/output-033.wav'
file 3-wavs/output-034.wav'
file 3-wavs/output-035.wav'
file 3-wavs/output-036.wav'
file 3-wavs/output-037.wav'
file 3-wavs/output-038.wav'
file 3-wavs/output-039.wav'
file 3-wavs/output-040.wav'
file 3-wavs/output-041.wav'
file 3-wavs/output-042.wav'
file 3-wavs/output-043.wav'
file 3-wavs/output-044.wav'
file 3-wavs/output-045.wav'
file 3-wavs/output-046.wav'
file 3-wavs/output-047.wav'
file 3-wavs/output-048.wav'
file 3-wavs/output-049.wav'
file 3-wavs/output-050.wav'
file 3-wavs/output-051.wav'
file 3-wavs/output-052.wav'
file 3-wavs/output-053.wav'
file 3-wavs/output-054.wav'
file 3-wavs/output-055.wav'
file 3-wavs/output-056.wav'
file 3-wavs/output-057.wav'
file 3-wavs/output-058.wav'
file 3-wavs/output-059.wav'
file 3-wavs/output-060.wav'
file 3-wavs/output-061.wav'
file 3-wavs/output-062.wav'

@ -0,0 +1,26 @@
import glob
import sys
import subprocess
import os
path = sys.argv[1]
fn_stem = sys.argv[2]
files = glob.glob(f"{path}/3-wavs/output-???.wav")
files.sort()
print(files)
with open(f"./{path}/inputs-{fn_stem}.txt", "w") as f:
for file in files:
base_file = os.path.basename(file)
f.write(f"file 3-wavs/{base_file}'\n")
f.flush()
subprocess.run([
"ffmpeg",
"-f", "concat",
"-safe", "0",
"-i", f"./{path}/inputs-{fn_stem}.txt",
"-c", "copy", f"./{path}/{fn_stem}.wav",
])

@ -3,25 +3,47 @@ from urllib.parse import quote
import subprocess import subprocess
import os import os
import sys import sys
import re
speaker_id="p230" speaker_id="p230"
letter_year = sys.argv[1] letter_series = sys.argv[1] or "buffett-partnership"
letter_year = sys.argv[2] or "1956"
real_run = (len(sys.argv) == 4) and bool(sys.argv[3]) or False
fn = f"./annual-letters/bpl-{letter_year}.txt" fn = f"./{letter_series}/{letter_year}/1-in/bpl-{letter_year}-letter.txt"
pre_fn = f"./{letter_series}/{letter_year}/2-preprocess/bpl-{letter_year}.txt"
output_dir = f"./wavs/bpl-{letter_year}/" output_dir = f"./{letter_series}/{letter_year}/3-wavs"
subprocess.run(['mkdir', '-p', output_dir]) subprocess.run(['mkdir', '-p', output_dir])
if (not real_run):
print("Dry run, check that sentences are readable.")
def synth_sentence(sentence, i):
text_prompt = quote(sentence)
# If hosted on IPv6 use http://[::1]:5002
# If hosted on IPv4 use http://localhost:5002
query_string = f"http://\[::1\]:5002/api/tts?text={text_prompt}&style_wav=&language_id=&speaker_id={speaker_id}"
print(f"Query string {query_string}")
subprocess.run(['curl', query_string, '-o', f"./{output_dir}/output-{str(i).zfill(3)}.wav"])
with open(fn) as f: with open(fn) as f:
lines = f.readlines() lines = f.readlines()
all_text = ''.join(lines) all_text = ''.join(lines)
sentences = all_text.split('.') sentence_ends = list(re.finditer(r"(\w\w+([\.:;][\s\n])|([\s\n][\s\n]+))", all_text))
count = len(sentences)
for (i, sentence) in enumerate(sentences): start = 0
text_prompt = quote(sentence) count = len(sentence_ends)
query_string = f"http://localhost:5002/api/tts?text={text_prompt}&speaker_id={speaker_id}&style_wav=&language_id=" print(f"{count} sentences found.\n")
subprocess.run(['curl', query_string, '-o', f"./{output_dir}/output-{str(i).zfill(3)}.wav"])
for (i, sentence_end) in enumerate(sentence_ends):
sentence = all_text[start:sentence_end.end()].strip()
# Heal any newlines due to awkward breaks from copy-pasta
sentence = " ".join(map(lambda x: x.strip(), sentence.split("\n")))
print(f"Sentence {i}:\n\t\"{sentence}\"\n\t{sentence_end}")
start = sentence_end.end() # no +1 needed since end is already one past the real ending character
if (real_run):
synth_sentence(sentence, i)

Loading…
Cancel
Save